株式会社ヴァンデミックシステム

Blog

<スポンサーリンク>

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/

<スポンサーリンク>

コメントを残す

Allowed tags:  you may use these HTML tags and attributes: <a href="">, <strong>, <em>, <h1>, <h2>, <h3>
Please note:  all comments go through moderation.

*

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