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に登録されたイメージが使われます。