前: Pod-Probe
Pod内のメインコンテナを起動する前に一時的なコンテナをPod内で起動できます。 例えばメインコンテナ起動前の準備を実装したりできます。ポイントとしてはinitContainersで起動するコンテナはあくまでもメインコンテナ起動前の一時的なものであることです。 そのため、initContainersで指定するcommandは exit 0 で終わるものを指定しましょう。
-
以下を満たす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
- 名前は
- Deployment
- 要件
-
接続確認に使用するcurlコマンドが実行可能なtestpodを作成し、testpodから
Service:nginx-svcに対して接続確認をしてください。
(Nginxデフォルトのindex.htmlが表示されること) -
マニフェストを以下の内容に修正し、デプロイしてください。なお、initContainersについては公式ドキュメントを参考にしてください。
- 要件
- Deployment
- Pod
- nginx
- volume:index-htmlを
/usr/share/nginx/htmlにマウント
- volume:index-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を指定
- 名前は
- nginx
- Pod
- Deployment
- 要件
-
Podの詳細を確認し、initContainers の箇所を確認してください。また、eventを確認しコンテナinitがメインコンテナの前に起動したことを確認してください。
-
testpodから
Service:nginx-svc/index.htmlに対して接続確認をしてください。(initContainerで修正したindex.htmlが表示されること) -
作成したリソースを削除してください。
以上で本演習は終了です。
具体的な操作およびその結果に関する回答例はこちらにあります。 具体的な操作方法がわからなかった場合や、想定した結果にならなかった場合などに参照してください。