Docker/Kuberneter学習
Kubernetesとは
Kubernetesは複数マシンからなる基盤上でコンテナ群を管理するのに用いられるオーケストレーションエンジンです。余談としてKubernetesは、しばしばk8sと略すことがあります。
Kubernetesの特徴
- ファイルを用いた宣言的管理
- 広範囲なデプロイ形式のサポート
- 拡張性の高いアーキテクチャとそれを取り巻く開発コミュニティ
Kubernetesクラスタとkubeckl
基本的な用語集
- kubectlコマンド:クラスタの操作、情報の参照
- マニフェスト:Kubernetesで管理するリソース(Pod、Deployment、service、Service等)の仕様を記述したYAMLまたJSON形式の宣言的な定義ファイル
- クラスタ:コンテナ群を実行するマシンの集合
- Kubernetes API:クラスタの管理情報を公開
- コントロールプレーン:クラスタ全体にわたる状態の管理を担うコンポーネント群
- ノード:コンテナを実行するマシン
Kubernetesにおける基本的なデプロイ単位「Pod」
Kubernetesにおいて基本的なデプロイ単位は1つ以上のコンテナ群をまとめた「Pod」と呼ばれるものです。
アプリケーションのデプロイ
以下はKubernetesがPod群をクラスタにデプロイするためにKubernetesがサポートする機能のうちの基本的な機能
- Deployment
- StatefulSet
- DeamonSet
- Job
- CronJob
設定項目とボリューム
- ConfigMap:コンテナ内の環境変数として見せる
- Seacret:コンテナ内のファイルシステムに読み取り専用でマウントし、ファイルとして見せる