Skip to content

Latest commit

 

History

History
64 lines (47 loc) · 2.72 KB

Pod-initContainer.md

File metadata and controls

64 lines (47 loc) · 2.72 KB

前: Pod-Probe


Pod設定 initContainers

Pod内のメインコンテナを起動する前に一時的なコンテナをPod内で起動できます。 例えばメインコンテナ起動前の準備を実装したりできます。ポイントとしてはinitContainersで起動するコンテナはあくまでもメインコンテナ起動前の一時的なものであることです。 そのため、initContainersで指定するcommandは exit 0 で終わるものを指定しましょう。

演習

  1. 以下を満たすDeployment, Serviceをデプロイしてください。

    • 要件
      • Deployment
        • 名前はnginx
        • replicas: 1
        • labelはすべてapp: nginx
        • Pod
          • 名前はnginx
          • イメージはnginx:1.12
      • Service
        • 名前はnginx-svc
        • 対象のlabelはapp: nginx
        • プロトコルはTCP
        • Portは80
        • targetPortは80
  2. 接続確認に使用するcurlコマンドが実行可能なtestpodを作成し、testpodからService:nginx-svcに対して接続確認をしてください。
    (Nginxデフォルトのindex.htmlが表示されること)

  3. マニフェストを以下の内容に修正し、デプロイしてください。なお、initContainersについては公式ドキュメントを参考にしてください。

    • 要件
      • Deployment
        • Pod
          • nginx
            • volume:index-htmlを/usr/share/nginx/htmlにマウント
          • initContainers
            • 名前init
            • イメージはbusybox
            • commandは['/bin/sh','-c','echo initContainer de settei sita noda > /tmp/index.html']
            • volume:index-htmlを/tmpにマウント
          • volume
            • 名前はindex-html
            • volumeプラグインはemptyDirを指定
  4. Podの詳細を確認し、initContainers の箇所を確認してください。また、eventを確認しコンテナinitがメインコンテナの前に起動したことを確認してください。

  5. testpodからService:nginx-svc/index.htmlに対して接続確認をしてください。(initContainerで修正したindex.htmlが表示されること)

  6. 作成したリソースを削除してください。

以上で本演習は終了です。

具体的な操作およびその結果に関する回答例はこちらにあります。 具体的な操作方法がわからなかった場合や、想定した結果にならなかった場合などに参照してください。


次: Pod-nodeSelector