YOKOHEI.COM

YOKOHEI.COM

›Kubernetes Basics

Kubernetes Basics

  • Kubernetes Basics
  • Commands
  • Static Pod
  • Drain & Uncordon
  • Cluster Upgrade
  • Backup & Restore
  • Certification
  • RBAC
  • CNI
  • CoreDNS
  • Ingress

Kubernetes the Hard Way

  • the Hard Way?
  • AWS Prerequisites
  • CA and TLS
  • Configuration Files
  • Data Encryption
  • Bootstrapping etcd
  • Bootstrapping Control Plane
  • Bootstrapping Worker Node
  • kubectl configuraton
  • Pod Network
  • RBAC for Kubelet
  • Coredns Add-On
  • Test
  • TLS Bootstrapping

Amazon EKS

  • EKS Introduction
  • Ingress with ALB
  • PersistentVolume with EBS
  • NetworkPolicy with Calico
  • Secret with KMS
  • EKS Hands-On

Commands

コンテナ起動時に渡されるコマンドについて (Docker)

基本形

起動後に 5 秒スリープするコンテナの例

Dockerfile

FROM Ubuntu
CMD sleep 5

CMD への渡し方は以下 2 通り。

  • CMD command param1
  • CMD ["command", "param1"]

引数だけを自由にしたい場合

Dockerfile

FROM Ubuntu
ENTRYPOINT ["sleep"]

以下のような形でコンテナ起動時に引数を渡すことができる。

$ docker run ubuntu-sleep 10

引数に対してデフォルト値を設けたい場合

上の例だと、引数を渡さずにコンテナを立ち上げようとしたときにエラーになる。
これを防ぐため、デフォルト値を与える。

Dockerfile

FROM Ubuntu
ENTRYPOINT ["sleep"]
CMD ["5"]

もし引数を別途指定すれば上書きされる。

$ docker run ubuntu-sleep 10

この書き方をするときは json フォーマットで書かないといけない。

エントリポイントを起動時に変更したい場合

以下のようなコマンドでいける。

$ docker run --entrypoint sleep2.0 ubuntu-sleep 10

Kubernetes での方法

引数の変更

引数は以下のような形で渡せる。

apiVersion: v1
kind: Pod
metadata:
  name: ubuntu-sleep
spec: 
  containers:
    - name: ubuntu-sleep
      image: ubuntu-sleep
      args: ["10"]

エントリポイントの変更

apiVersion: v1
kind: Pod
metadata:
  name: ubuntu-sleep
spec: 
  containers:
    - name: ubuntu-sleep
      image: ubuntu-sleep
      command: ["sleep2.0"]
      args: ["10"]

つまり、マニフェストにおける command は Dockerfile における ENTRYPOINT であり、マニフェストにおける args は Dockerfile における CMD である。

← Kubernetes BasicsStatic Pod →
▼ Codes ▼
LeetCodeGitHub
▼ Profile ▼
LinkedInFlickr
▼ Logo made with DesignEvo ▼
DesignEvo
Copyright © 2020 Kohei Yoshida