KubernetesでPodを作る方法は公式のドキュメント「Kubernetes 101」にまとめられていますし、Web検索すると同じような内容のブログ記事やフォーラムのFAQが見つかります。
多くの人がこんな内容のYAMLファイルを書いて、Nginx 1.7.9をデプロイしたはずです。 ちなみにDocker HubのNginxのタグ一覧を見る限り、1.13.11が最新です。
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
では、「Nginxではなく、FedoraとかUbuntuとかCentOSとか、そういった環境をPodを作って動かしたい時はどうするか」と思ったのでその方法を調査することから始めました。
ます確認したのはKubernetes公式のドキュメントです。隅々見たつもりですが、残念ながら有力な情報は見つけられませんでした。そこでさらに色々調べたところ、次のようなサイトの情報を見つけることができました。
必要な部分だけ抜き出すと、「spec - containers」にDockerのイメージと次のような記述を入れると良いようです。勘が良いかたは気がつくと思いますが、この内容でPodを作った場合Podは1000秒経過すると、自動的に終了してしまいます。なんかあの作品っぽいですね。
...
spec:
containers:
- name: shell
image: centos:7
command:
- "bin/bash"
- "-c"
- "sleep 1000"
これでは場合によっては困るので、他の方法を考えてみました。
apiVersion: v1
kind: Pod
metadata:
name: fedora
spec:
restartPolicy: OnFailure
containers:
- name: fedora
image: fedora:latest
command:
- "/sbin/init"
コマンドとしてInitを実行してみました。このようなYAMLを書いてkubectl create -f deploy.ymlすると、Fedoraが起動するPodを作ることができます。一応、手元の環境ではうまく動いていました。
metadataにnameとしてPodの名前を記述しておくと、その名前でPodが作成されます。imagesはデフォルトではDocker Hubに登録されたイメージが使われます。