Container
Kubernetesにおいて、基本的にコンテナはPod内で定義され、実行される(はず)。
See also Pod
CPU/メモリの割当て
考え方やベストプラクティスについてはConcept#コンテナやpodへのcpuメモリの割当てを見よ。
コマンド/引数の定義
See https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes
Example:
apiVersion: v1
kind: Pod
metadata:
name: command-demo
labels:
purpose: demonstrate-command
spec:
containers:
- name: command-demo-container
image: debian
command: ["printenv"]
args: ["HOSTNAME", "KUBERNETES_PORT"]
restartPolicy: OnFailure
liveness/readiness probes
ヘルスチェック的なもの。
参考:
Lifecycle Hooks
https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/
See also Pod#ライフサイクル
以下のフックを仕込むことで、コマンド実行などが可能。
- PostStart
- PreStop … 終了直前に実行される
詳細な仕様はAPIリファレンスを見よ。
設定例:
apiVersion: v1
kind: Pod
metadata:
name: lifecycle-demo
spec:
containers:
- name: lifecycle-demo-container
image: httpd
lifecycle:
preStop:
exec:
command: ["sh", "-c", "sleep 2; httpd -k graceful-stop; sleep 30"]
terminationGracePeriodSeconds: 40
参考:
- pod(Kubernetes)のlifecycle.prestopの挙動 - 1クール続けるブログ
- Kubernetes道場 6日目 - Init Container / Lifecycleについて - Toku’s Blog
最終更新 2020-05-04: [software/k8s] Restructure Kubernetes pages (7114ade87)