はじめに
前回の記事に引き続きk8s上でVMの様に扱えるCentOSイメージのみのPodを作成したいと思います。構築手順も記述しておりますのであしからず。
Podとは
Podは、1つ以上のアプリケーションコンテナのグループとそれらのコンテナの共有リソースを表すものです。例えば次のようなものがあります。
- 共有ストレージ(ボリューム)
- ネットワーキング(クラスターに固有のIPアドレス)
- コンテナのイメージバージョンや使用するポートなどの、各コンテナをどう動かすかに関する情報
今回はCentOS7コンテナのみのPodを作ってみたいと思います。
マニフェスト作成
k8sの構成管理を行うテキストファイルのことをマニフェストと呼びます。Ansibleで言うプレイブック、docker-composeで言うところのdocker-compose.ymlです。
apiVersion: v1
kind: Pod
metadata:
name: centos7
spec:
restartPolicy: OnFailure
containers:
- name: centos7
image: centos:7
command:
- "/sbin/init"
マニフェストを元にPodを作成します。STATUSがRunningになっていれば成功です。
# kubectl create -f centos-deployment.yml
# kubectl get pod
NAME READY STATUS RESTARTS AGE
centos7 1/1 Running 0 46s
ポート開放してから実際にコンテナに入り操作してみます。
- ワーカーノード
- 10250/TCP
# kubectl exec -it centos7 /bin/bash
# yum -y update
コンテナに入ることは出来ても、名前解決に失敗しyum
コマンドが通らないかと思います。なので外部DNSサーバをワーカーノードのものと同じIPアドレスにしてしまいます。本当はルーティングするのですが手間なのでやりません。
# vi /etc/resolv.conf
nameserver 【ワーカーノードからコピペ】
これで外部に抜けられるはずです。以上です。