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

参考: