initコンテナ

  • 環境ごとに変わるコマンドなどを実行させる
  • ボリュームをマウントしてから出ないと実行できないコマンドなどを実行させる
  • Pod起動後に必要なコマンドを実行させる

initコンテナのyamlファイル

  • myserviceとmydbを2秒毎に待ち受けて、見つかれば処理終了
myapp.yaml
apiVersion : V1の
種類: ポッドの
メタデータ:
  名前: myappの-ポッド
  ラベル:
    アプリ: myappという
スペック:
  コンテナ:
  -  名前: myappのコンテナの
    画像: busyboxの:1.28 
    コマンド: [ ' SH' 、 ' -c' 、 " エコーアプリがありますランニング!&& sleep 3600 ' ] 
initContainers :- 名前:       
  

    INIT-MYSERVICEの
    画像: busyboxの:1.28 
    コマンド: [ ' SH' 、 ' -c' 、 " までnslookupを。MYSERVICE $(猫/var/run/secrets
/kubernetes.io/serviceaccount/namespace).svc.cluster.local。
やるエコー待ちのためMYSERVICEを、睡眠2; 行わ" ] 
- 名前:INIT-mydbというイメージ:busyboxの:1.28 コマンド:[ ' SH' 、' -c' 、" まで
nslookupコマンド           
    
     
         mydb。$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)
.svc.cluster.local; やるエコー待ちのためMYDBを。睡眠2; 「終了]         

起動

kubectl apply -f myapp.yaml

確認

kubectl get -f myapp.yaml 

serviceもdbもいないのでまだREADYになっていない

名前READYステータス再起動年齢
myapp-pod 0/1 Init:0/2 0 3分15秒

serviceを作成する

service.yaml
--- 
apiVersion : v1 
種類: サービス
メタデータ:
  名前: myservice 
仕様:
  ポート:
  -  プロトコル: TCP 
    ポート: 80 
    targetPort : 9376 
--- 
apiVersion : v1 
種類: サービス
メタデータ:
  名前: mydb 
仕様:
  ポート:
  -  プロトコル: TCP 
    ポート: 80 
    targetPort : 9377

起動

kubectl apply -f service.yaml

確認

yuta:〜$ kubectl get -f myapp.yaml 
名前READYステータス再起動年齢
myapp-pod 1/1ランニング0 6分15秒

ログ確認コマンド

kubectl describe -f myapp.yaml
kubectlログmyapp-pod -c init-myservice

参考

https://kubernetes.io/ja/docs/concepts/workloads/pods/init-containers/

<スポンサーリンク>

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)