Kubernetes Hands On(第1回)
Podの考え方
Podとは大まかに
Containerの集合体と考えることが出来ます。
簡単に考えると、
docker-composeで作成されるContainer群がPodだと考えることが可能です。
では、実際にPodを作成してみましょう。
pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: demo
labels:
name: demo
spec:
selector:
matchLabels:
app: demo
containers:
- name: demo
image: ncsnozominishinohara/demo:v1
resources: {}
ports:
- containerPort: 80
解説
apiVersion
kubernetesのバージョンによって使用できる値は変わります。
kubernetesの所属しているAPIGROUPによって書き方が異なります。
- 特定のApiGroupに属している場合・・・
apiVersion: ApiGroup/ApiVersion
- 特定のApiGroupに属していない場合(CoreGroupに属している)・・・
apiVersion: ApiVersion
対応しているApiGroupの調べ方は以下のコマンドを実行することで確認出来ます。(v1.17.2)
kubectl api-resource
kind
どのオブジェクトであるかを設定します。
今回であればkind: Pod
を指定しているため、
Podオブジェクト
が作成されます。
metadata
このオブジェクトのメタ情報を設定します。
name: 任意の命名(後に他のkindオブジェクトで指定される値)
labels: 任意の命名が可能(但し制限もあるため、公式を参考に)
spec
オブジェクトの仕様を表します。
- containers
- name
Pod名 - image
使用するコンテナイメージ名 - resources
CPU/メモリ等を設定 - ports
- containerPort
コンテナ内からExposeされるポート番号
- containerPort
- name
デプロイ方法
kubectl apply -f pod.yaml