このセクションでは、Kubernetes クラスタを操作するためのマニフェストファイルの作成と、Kubernetes Master にPod リソースを作成する方法を紹介します。
マニフェストの作成(サンプル)
サンプルのマニフェストを新規作成し、下記編集します。
[root@kube-master ~]# vi manifest/sample-pod.yaml
リソースの種類( kind )に Podを指定し、その Pod リソースの名前は sample-pod 、Pod 上のコンテナイメージは nginx:1.12 としています。
apiVersion: v1 kind: Pod metadata: name: sample-pod spec: containers: - name: nginx-container image: nginx:1.12
リソースの作成
Master サーバーで作成したサンプルのマニフェストを実行し、Kubernetes クラスタに Pod リソースを作成します。
[root@kube-master ~]# kubectl apply -f manifest/sample-pod.yaml pod/sample-pod created [root@kube-master ~]#
Master サーバーから Kubernetes クラスタ上の Pod の稼働状況を確認します。ここでは、sample-pod の名前の Pod が稼働していることが確認できます。
[root@kube-master ~]# kubectl get pod sample-pod NAME READY STATUS RESTARTS AGE sample-pod 1/1 Running 0 3m26s [root@kube-master ~]#
Master サーバーから sample-pod の 詳細情報を確認します。ここでは、 kube-work2 の Node サーバー上で IPアドレス 10.244.2.2 のPod として sample-pod が稼働していることが確認できます。
[root@kube-master ~]# kubectl describe pods sample-pod Name: sample-pod Namespace: default Priority: 0 PriorityClassName: <none> Node: kube-work2/192.168.25.102 Start Time: Sat, 05 Jan 2019 16:46:50 +0900 Labels: <none> Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"v1","kind":"Pod","metadata":{"annotations":{},"name":"sample-pod","namespace":"default"},"spec":{"containers":[{"image":"ng... Status: Running IP: 10.244.2.2 Containers: nginx-container: Container ID: docker://9893d0febae30afe1c8cc412b51e38a99ae4a0333451ecf203985eaac7006b1a Image: nginx:1.12 Image ID: docker-pullable://nginx@sha256:72daaf46f11cc753c4eab981cbf869919bd1fee3d2170a2adeac12400f494728 Port: <none> Host Port: <none> State: Running Started: Sat, 05 Jan 2019 16:47:03 +0900 Ready: True Restart Count: 0 Environment: <none> Mounts: /var/run/secrets/kubernetes.io/serviceaccount from default-token-75dfq (ro) Conditions: Type Status Initialized True Ready True ContainersReady True PodScheduled True Volumes: default-token-75dfq: Type: Secret (a volume populated by a Secret) SecretName: default-token-75dfq Optional: false QoS Class: BestEffort Node-Selectors: <none> Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s node.kubernetes.io/unreachable:NoExecute for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 4m55s default-scheduler Successfully assigned default/sample-pod to kube-work2 Normal Pulling 4m55s kubelet, kube-work2 pulling image "nginx:1.12" Normal Pulled 4m42s kubelet, kube-work2 Successfully pulled image "nginx:1.12" Normal Created 4m42s kubelet, kube-work2 Created container Normal Started 4m42s kubelet, kube-work2 Started container [root@kube-master ~]#
Pod リソースが稼働している kube-work2 の Node サーバーで、docker イメージを確認します。ここでは、 nginx のイメージ( IMAGE ID : 4037a5562b03 )があることが確認できます。
[root@kube-work2 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE k8s.gcr.io/kube-proxy v1.13.1 fdb321fd30a0 3 weeks ago 80.2MB k8s.gcr.io/coredns 1.2.6 f59dcacceff4 2 months ago 40MB nginx 1.12 4037a5562b03 8 months ago 108MB quay.io/coreos/flannel v0.10.0-amd64 f0fad859c909 11 months ago 44.6MB k8s.gcr.io/pause 3.1 da86e6ba6ca1 12 months ago 742kB [root@kube-work2 ~]#
Pod リソースが稼働している kube-work2 の Node サーバーで、コンテナの稼働状況を確認します。ここでは、 nginx のイメージ( IMAGE ID : 4037a5562b03 )からコンテナが作成され稼働していることが確認できます。
[root@kube-work2 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES aa8e22b26f54 4037a5562b03 "nginx -g 'daemon of…" 36 seconds ago Up 36 seconds k8s_nginx-container_sample-pod_default_3263683f-10c6-11e9-94ad-525400bc2a02_0 559583efeacf k8s.gcr.io/pause:3.1 "/pause" 37 seconds ago Up 36 seconds k8s_POD_sample-pod_default_3263683f-10c6-11e9-94ad-525400bc2a02_0 b6b0ecf61d9d f0fad859c909 "/opt/bin/flanneld -…" 6 hours ago Up 6 hours k8s_kube-flannel_kube-flannel-ds-amd64-w64mv_kube-system_fc268074-1093-11e9-94ad-525400bc2a02_0 93c2a0827484 fdb321fd30a0 "/usr/local/bin/kube…" 6 hours ago Up 6 hours k8s_kube-proxy_kube-proxy-k76gv_kube-system_fc269cf7-1093-11e9-94ad-525400bc2a02_0 b9b608d6b23a k8s.gcr.io/pause:3.1 "/pause" 6 hours ago Up 6 hours k8s_POD_kube-proxy-k76gv_kube-system_fc269cf7-1093-11e9-94ad-525400bc2a02_0 93f7ab33300b k8s.gcr.io/pause:3.1 "/pause" 6 hours ago Up 6 hours k8s_POD_kube-flannel-ds-amd64-w64mv_kube-system_fc268074-1093-11e9-94ad-525400bc2a02_0 [root@kube-work2 ~]#