k8sはコンテナのオーケストレーションツール
複数の物理マシンに複数のコンテナがあることが前提
1台1台の物理マシンの中に複数のコンテナがある
定義ファイル(マニュフェストファイル)を作成すれば、コンテナを作成管理してくる
L etcd(データベース)に書き込まれる
docker-composeは作って終わりだが、k8sはその状態を維持する。監視も行う
### マスターノードとワーカーノード
クラスターは定義ファイルに基づいて自立して動く
k8sは仮想ネットワークドライバであるCNIをインストールする必要がある
マスターノードではコントロールプレーンでワーカーノードを管理
### 用語
Pod: コンテナとボリュームがセットになったもの
Service: Podをまとめて管理する
ReplicaSet: Podの数を管理
### 定義ファイル
apiVersion: v1 kind: Pod metadata: name: apa000pod labels: app: apa000kube spec: containers: - name: apa000ex91 image: httpd ports: - containerPort: 80
apa000dep.yml
apiVersion: apps/v1 kind: Deployment metadata: name: apa000dep spec: selector: matchLabels: app: apa000kube replicas: 3 template: metadata: labels: app: apa000kube spec: containers: - name: apa000ex91 image: httpd ports: - containerPort: 80
service
apiVersion: v1 kind: Service metadata: name: apa000ser spec: type: NodePort ports: - port: 8099 targetPort: 80 protocol: TCP nodePort: 30080 selector: app: apa000kube
### kubernetsコマンド
$ kubectl ${command} ${option}
create, edit, delete, get, set, apply, describe, diff, expose, scale, autoscale, rollout, exec, run, attach, cp, logs, cluster-info, top
$ kubectl apply -f *.yml
$ kubectl get pods
$ kubectl apply -f *.yml
$ kubectl get services
OK、さー仕事するぞー