CentOS 7
Sponsored Link

Kubernetes : Pod を作成する
2015/12/13
 
Kubernetes 環境ではコンテナーは Pod というグループ単位で管理されます。
Pod を作成することでコンテナーの実行が可能となります。
ここでは、以下のような Kubernetes 環境を前提にしています。
                       +---------------------+
                       | [   Admin Node    ] |
                       |    dlp.srv.world    |
                       |                     |
                       +----------+----------+
                                  |
+----------------------+          |          +----------------------+
| [       Node01     ] |10.0.0.51 | 10.0.0.52| [       Node02     ] |
|   node01.srv.world   +----------+----------+   node02.srv.world   |
|                      |                     |                      |
+----------------------+                     +----------------------+

 
例として、シングルコンテナーで httpd が起動する Pod を作成します。
[1]
任意のノード上でこちらを参考に、httpd インストール済みのコンテナーイメージを作成しておきます
イメージの名称はリンク先と同じく「web_server」で進めます。
[2] 任意のノード上で作成したコンテナーイメージを他の全ノードに配布しておきます。
# コンテナイメージをファイルに出力

[root@node01 ~]#
docker save web_server > web_server.tar
# 出力したイメージを他ノードに配布

[root@node01 ~]#
scp web_server.tar node02:/root/web_server.tar

[3] 配布されたコンテナーイメージをロードしておきます。
[root@node02 ~]#
docker load < web_server.tar

[root@node02 ~]#
docker images

REPOSITORY          TAG       IMAGE ID            CREATED             VIRTUAL SIZE
web_server          latest    084ef53f3d83        11 minutes ago      283.9 MB
docker.io/centos    latest    ce20c473cd8a        8 weeks ago         172.3 MB
[4] 以上の準備が整ったら管理ノード上で Pod を作成します。
[root@dlp ~]#
vi pod-webserver.yaml
apiVersion: v1
kind: Pod
metadata:
  # Pod の名前
  name: httpd
  labels:
    # ラベル
    app: web_server
spec:
  containers:
    # コンテナーの名前
  - name: httpd
    # コンテナーイメージ
    image: web_server
    ports:
      # コンテナーがリスンするポート
    - containerPort: 80

# Pod 作成

[root@dlp ~]#
kubectl create -f pod-webserver.yaml

pods/httpd
# Pod の一覧表示

[root@dlp ~]#
kubectl get pods -o wide

NAME      READY     STATUS    RESTARTS   AGE       NODE
httpd     0/1       Running   0          8s        node01

# Pod に割り当てられた IP アドレスを表示

[root@dlp ~]#
kubectl get pod httpd -o yaml | grep "podIP"

podIP: 172.16.35.10
# アクセス可能か確認

[root@dlp ~]#
curl http://172.16.35.10/

Hello DockerFile
[5] Pod を削除する場合は以下のようにコマンド指定します。
[root@dlp ~]#
kubectl delete pod httpd

pods/httpd
 
Tweet