เชฒเซเชเชจเซ เช
เชจเซเชตเชพเชฆ เชเซเชฐเซเชธเชจเซ เชถเชฐเซเชเชคเชจเซ เชชเซเชฐเซเชตเชธเชเชงเซเชฏเชพเช เชคเซเชฏเชพเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเชคเซ
เชเซ เชคเชฎเซ เช เชตเชพเชเชเซ เชฐเชนเซเชฏเชพเช เชเซ, เชคเซ เชคเชฎเซ เชเชฆเชพเช เชเซเชฌเชฐเชจเซเชเซเชธ เชตเชฟเชถเซ เชเชเชเช เชธเชพเชเชญเชณเซเชฏเซเช เชนเชถเซ (เช
เชจเซ เชเซ เชจเชนเซเช, เชคเซ เชคเชฎเซ เช
เชนเซเช เชเซเชตเซ เชฐเซเชคเซ เชชเชนเซเชเชเซเชฏเชพ?) เชชเชฐเชเชคเซ เชเซเชฌเชฐเชจเซเชเซเชธ เชฌเชฐเชพเชฌเชฐ เชถเซเช เชเซ? เช
เชธเชพเชเซเช เชเชนเซเช เชคเซ, เชฎเชจเซ 100% เชเชพเชคเชฐเซ เชจเชฅเซ. เชชเชฐเชเชคเซ เชฎเชจเซ เชฒเชพเชเซ เชเซ เชเซ เชเชเชคเชฐเชฟเชเชฎเชพเช เชเซเชฆเชตเซเช เช
เชจเซ เชเชฌเซเชธเซเชเซเชฐเซเชเซเชถเชจเชจเชพ เชเชฃเชพ เชธเซเชคเชฐเซ เชนเซเช เชณ เชเซเชฌเชฐเชจเซเชเซเชธเชฎเชพเช เชเชฐเซเชเชฐ เชถเซเช เชเชพเชฒเซ เชฐเชนเซเชฏเซเช เชเซ เชคเซ เชเซเชตเชพเชจเซเช เชฐเชธเชชเซเชฐเชฆ เชเซ. เชคเซ เชฎเชพเชคเซเชฐ เชฎเชจเซเชฐเชเชเชจ เชฎเชพเชเซ, เชเชพเชฒเซ เชเซเชเช เชเซ เชจเซเชฏเซเชจเชคเชฎ โเชเซเชฌเชฐเชจเซเชเซเชธ เชเซเชฒเชธเซเชเชฐโ เชเชฐเซเชเชฐ เชเซเชตเซเช เชฆเซเชเชพเชฏ เชเซ. (เช เชเชฐเชคเชพเช เชเชฃเซเช เชธเชฐเชณ เชนเชถเซ
เชนเซเช เชงเชพเชฐเซเช เชเซเช เชเซ เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชเซเชฌเชฐเชจเซเชเซเชธ, เชฒเชฟเชจเชเซเชธ เช
เชจเซ เชเชจเซเชเซเชจเชฐเชจเซเช เชฎเซเชณเชญเซเชค เชเซเชเชพเชจ เชเซ. เช
เชฎเซ เช
เชนเซเช เชเซ เชชเชฃ เชตเชพเชค เชเชฐเซเช เชเซเช เชคเซ เชซเชเซเชค เชธเชเชถเซเชงเชจ/เชถเชฟเชเซเชทเชฃ เชนเซเชคเซเช เชฎเชพเชเซ เชเซ, เชคเซเชฎเชพเชเชฅเซ เชเซเช เชชเชฃ เชเชคเซเชชเชพเชฆเชจเชฎเชพเช เชฎเซเชเชถเซ เชจเชนเซเช!
เชเชพเชเชเซ
เชเซเชฌเชฐเชจเซเชเซเชธเชฎเชพเช เชเชฃเชพ เชเชเชเซ เชเซ. เช
เชจเซเชธเชพเชฐ
เช
เชนเซเช เชเชเชพเชฎเชพเช เชเชเชพ เชเช เชเชเชเซ เชฆเชฐเซเชถเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชเซ, เชชเชฐเชเชคเซ เช
เชฎเซ เชคเซเชฎเชพเชเชจเชพ เชฎเซเชเชพเชญเชพเชเชจเชพเชจเซ เช
เชตเชเชฃเซเชถเซเช. เชนเซเช เชเชฃเชพเชตเชตเชพ เชฎเชพเชเชเซ เชเซเช เชเซ เชจเซเชฏเซเชจเชคเชฎ เชตเชธเซเชคเซ เชเซเชจเซ เชตเซเชฏเชพเชเชฌเซ เชฐเซเชคเซ เชเซเชฌเชฐเชจเซเชเซเชธ เชเชนเซ เชถเชเชพเชฏ เชคเซ เชคเซเชฐเชฃ เชฎเซเชเซเชฏ เชเชเชเซ เชงเชฐเชพเชตเซ เชเซ:
- เชเซเชฌเซเชฒเซเช
- kube-apiserver (เชเซ etcd เชชเชฐ เชเชงเชพเชฐ เชฐเชพเชเซ เชเซ - เชคเซเชจเซ เชกเซเชเชพเชฌเซเช)
- เชเชจเซเชเซเชจเชฐ เชฐเชจเชเชพเชเชฎ (เช เชเชฟเชธเซเชธเชพเชฎเชพเช เชกเซเชเชฐ)
เชเชพเชฒเซ เชเซเชเช เชเซ เชคเซ เชฆเชฐเซเช เชตเชฟเชถเซ เชฆเชธเซเชคเชพเชตเซเชเซเชเชฐเชฃ เชถเซเช เชเชนเซ เชเซ (
เชเซเชฒเชธเซเชเชฐเชฎเชพเช เชฆเชฐเซเช เชจเซเชก เชชเชฐ เชเช เชเชเชจเซเช เชเชพเชฒเซ เชฐเชนเซเชฏเซ เชเซ. เชคเซ เชเชพเชคเชฐเซ เชเชฐเซ เชเซ เชเซ เชชเซเชกเชฎเชพเช เชเชจเซเชเซเชจเชฐ เชเชพเชฒเซ เชฐเชนเซเชฏเซเช เชเซ.
เชชเชฐเซเชฏเชพเชชเซเชค เชธเชฐเชณ เชฒเชพเชเซ เชเซ. เชคเซ เชตเชฟเชทเซ เชเชจเซเชเซเชจเชฐ เชฐเชจเชเชพเชเชฎเซเชธ (เชเชจเซเชเซเชจเชฐ เชฐเชจเชเชพเชเชฎ)?
เชเชจเซเชเซเชจเชฐ เชฐเชจเชเชพเชเชฎ เช เชเชจเซเชเซเชจเชฐ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชฐเชเชพเชฏเซเชฒ เชชเซเชฐเซเชเซเชฐเชพเชฎ เชเซ.
เชเซเชฌ เช เชฎเชพเชนเชฟเชคเซเชชเซเชฐเชฆ. เชชเชฐเชเชคเซ เชเซ เชคเชฎเซ เชกเซเชเชฐเชฅเซ เชชเชฐเชฟเชเชฟเชค เชเซ, เชคเซ เชคเชฎเชพเชฐเซ เชคเซ เชถเซเช เชเชฐเซ เชเซ เชคเซเชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชเซเชฏเชพเชฒ เชนเซเชตเซ เชเซเชเช. (เชเชจเซเชเซเชจเชฐ เชฐเชจเชเชพเชเชฎ เช เชจเซ เชเซเชฌเซเชฒเซเช เชตเชเซเชเซเชจเซ เชเชตเชพเชฌเชฆเชพเชฐเซเชเชจเชพ เชตเชฟเชญเชพเชเชจเชจเซ เชตเชฟเชเชคเซ เชตเชพเชธเซเชคเชตเชฎเชพเช เชเซเชฌ เช เชธเซเชเซเชทเซเชฎ เชเซ เช เชจเซ เชนเซเช เช เชนเซเช เชคเซเชฎเชพเช เชเชเชถ เชจเชนเซเช.)
ะ API เชธเชฐเซเชตเชฐ?
API เชธเชฐเซเชตเชฐ เช Kubernetes เชจเชฟเชฏเชเชคเซเชฐเชฃ เชชเซเชจเชฒ เชเชเช เชเซ เชเซ Kubernetes API เชจเซ เชเซเชฒเซเชฒเซเช เชชเชพเชกเซ เชเซ. API เชธเชฐเซเชตเชฐ เช Kubernetes เชจเชฟเชฏเชเชคเซเชฐเชฃ เชชเซเชจเชฒเชจเซ เชเซเชฒเชพเชฏเชจเซเช เชฌเชพเชเซ เชเซ
เชเซเชเชชเชฃ เชเซเชฃเซ เชเซเชฏเชพเชฐเซเชฏ เชเซเชฌเชฐเชจเซเชเซเชธ เชธเชพเชฅเซ เชเชเชเชชเชฃ เชเชฐเซเชฏเซเช เชเซ เชคเซเชฃเซ เชธเซเชงเชพ เช เชฅเชตเชพ เชเซเชฏเซเชฌเซเชเซเชเชฒ เชฆเซเชตเชพเชฐเชพ API เชธเชพเชฅเซ เชธเชเชชเชฐเซเช เชเชฐเชตเซ เชชเชกเซเชฏเซ เชเซ. เช เชคเซ เชนเซเชฆเชฏ เชเซ เชเซ เชเซเชฌเชฐเชจเซเชเซเชธ เชเซเชฌเชฐเชจเซเชเซเชธ เชฌเชจเชพเชตเซ เชเซ - เชฎเชเช เชเซ YAML เชจเชพ เชชเชฐเซเชตเชคเซเชจเซ เชเชชเชฃเซ เชฌเชงเชพ เชเชพเชฃเซเช เชเซเช เช เชจเซ เชชเซเชฐเซเชฎ (?) เชจเซ เชเชพเชฐเซเชฏเชเชพเชฐเซ เชฎเชพเชณเชเชพเชฎเชพเช เชซเซเชฐเชตเซ เชเซ. เชคเซ เชธเซเชชเชทเซเช เชฒเชพเชเซ เชเซ เชเซ API เช เชฎเชพเชฐเชพ เชจเซเชฏเซเชจเชคเชฎ เชเซเช เชตเชฃเซเชฎเชพเช เชนเชพเชเชฐ เชนเซเชตเซเช เชเซเชเช.
เชชเซเชฐเซเชตเชถเชฐเชคเซ
- เชฐเซเช เชเชเซเชธเซเชธ เชธเชพเชฅเซ Linux เชตเชฐเซเชเซเชฏเซเช เชฒ เช เชฅเชตเชพ เชญเซเชคเชฟเช เชฎเชถเซเชจ (เชนเซเช เชตเชฐเซเชเซเชฏเซเช เชฒ เชฎเชถเซเชจ เชชเชฐ เชเชฌเซเชจเซเชเซ 18.04 เชจเซ เชเชชเชฏเซเช เชเชฐเซเช เชเซเช).
- เช เชจเซ เชคเซ เชฌเชงเซเช เชเซ!
เชเชเชเชพเชณเชพเชเชจเช เชธเซเชฅเชพเชชเชจ
เช
เชฎเซ เชเซ เชฎเชถเซเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชถเซเช เชคเซเชจเชพ เชชเชฐ เช
เชฎเชพเชฐเซ เชกเซเชเชฐ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. (เชกเซเชเชฐ เช
เชจเซ เชเชจเซเชเซเชจเชฐ เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ เชคเซ เชตเชฟเชถเซ เชนเซเช เชตเชฟเชเชคเชตเชพเชฐ เชจเชฅเซ เชเช เชฐเชนเซเชฏเซ; เชเซ เชคเชฎเชจเซ เชฐเชธ เชนเซเชฏ, เชคเซ เชคเซเชฏเชพเช เชเซ apt
:
$ sudo apt install docker.io
$ sudo systemctl start docker
เชคเซ เชชเชเซ, เชเชชเชฃเซ เชเซเชฌเชฐเชจเซเชเซเชธ เชฆเซเชตเชฟเชธเชเชเซ เชฎเซเชณเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชนเชเซเชเชคเชฎเชพเช, เช
เชฎเชพเชฐเชพ "เชเซเชฒเชธเซเชเชฐ" เชจเชพ เชชเซเชฐเชพเชฐเชเชญเชฟเช เชชเซเชฐเชเซเชทเซเชชเชฃ เชฎเชพเชเซ เช
เชฎเชจเซ เชซเชเซเชค เชเชฐเซเชฐ เชเซ kubelet
, เชเชพเชฐเชฃ เชเซ เช
เชจเซเชฏ เชธเชฐเซเชตเชฐ เชเชเชเซเชจเซ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เช
เชฎเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซเช เชเซเช kubelet
. เช
เชฎเชพเชฐเชพ เชเซเชฒเชธเซเชเชฐ เชเชพเชฒเซ เชฅเชฏเชพ เชชเชเซ เชคเซเชจเซ เชธเชพเชฅเซ เชธเชเชชเชฐเซเช เชเชฐเชตเชพ เชฎเชพเชเซ, เช
เชฎเซ เชคเซเชจเซ เชชเชฃ เชเชชเชฏเซเช เชเชฐเซเชถเซเช kubectl
.
$ curl -L https://dl.k8s.io/v1.18.5/kubernetes-server-linux-amd64.tar.gz > server.tar.gz
$ tar xzvf server.tar.gz
$ cp kubernetes/server/bin/kubelet .
$ cp kubernetes/server/bin/kubectl .
$ ./kubelet --version
Kubernetes v1.18.5
เชเชชเชฃเซ เช เชฆเซเชกเซเช เชคเซ เชถเซเช เชฅเชพเชฏ kubelet
?
$ ./kubelet
F0609 04:03:29.105194 4583 server.go:254] mkdir /var/lib/kubelet: permission denied
kubelet
เชฐเซเช เชคเชฐเซเชเซ เชเชพเชฒเชตเซเช เชเซเชเช. เชคเชฆเซเชฆเชจ เชคเชพเชฐเซเชเชฟเช, เชเชพเชฐเชฃ เชเซ เชคเซเชฃเซ เชธเชฎเชเซเชฐ เชจเซเชกเชจเซเช เชธเชเชเชพเชฒเชจ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชเชพเชฒเซ เชคเซเชจเชพ เชชเชฐเชฟเชฎเชพเชฃเซ เชเซเชเช:
$ ./kubelet -h
<ัะปะธัะบะพะผ ะผะฝะพะณะพ ัััะพะบ, ััะพะฑั ัะฐะทะผะตััะธัั ะทะดะตัั>
$ ./kubelet -h | wc -l
284
เชตเชพเชน, เชเชฃเชพ เชฌเชงเชพ เชตเชฟเชเชฒเซเชชเซ! เชธเชฆเชญเชพเชเซเชฏเซ, เช เชฎเชจเซ เชซเชเซเชค เชคเซเชฎเชพเชเชฅเซ เชเชเชจเซ เชเชฐเซเชฐ เชเซ. เช เชนเซเช เชเช เชชเชฐเชฟเชฎเชพเชฃเซ เชเซ เชเซเชฎเชพเช เช เชฎเชจเซ เชฐเชธ เชเซ:
--pod-manifest-path string
เชธเซเชเซเชเชฟเช เชชเซเชกเซเชธ เชฎเชพเชเซเชจเซ เชซเชพเชเชฒเซ เชงเชฐเชพเชตเชคเซ เชกเชฟเชฐเซเชเซเชเชฐเซเชจเซ เชชเชพเชฅ เช
เชฅเชตเชพ เชธเซเชเซเชเชฟเช เชชเซเชกเซเชธเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเชคเซ เชซเชพเชเชฒเชจเซ เชชเชพเชฅ. เชฌเชฟเชเชฆเซเชเชฅเซ เชถเชฐเซ เชฅเชคเซ เชซเชพเชเชฒเซเชจเซ เช
เชตเชเชฃเชตเชพเชฎเชพเช เชเชตเซ เชเซ. (เชจเชพเชชเชธเชเชฆ เชเชฐเซเชฒ: เช เชตเชฟเชเชฒเซเชช --config เชตเชฟเชเชฒเซเชช เชฆเซเชตเชพเชฐเชพ เชเซเชฌเซเชฒเซเชเชจเซ เชชเชธเชพเชฐ เชเชฐเชพเชฏเซเชฒเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒเชฎเชพเช เชธเซเช เชเชฐเชตเซ เชเชตเชถเซเชฏเช เชเซ. เชตเชงเซ เชฎเชพเชนเชฟเชคเซ เชฎเชพเชเซ, เชเซเช
เช เชตเชฟเชเชฒเซเชช เช
เชฎเชจเซ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชชเชฐเชตเชพเชจเชเซ เชเชชเซ เชเซ
เชชเชนเซเชฒเชพ เชเชชเชฃเซ เชธเซเชเซเชเชฟเช เชชเซเชกเซเชธ เชฎเชพเชเซ เชกเชฟเชฐเซเชเซเชเชฐเซ เชฌเชจเชพเชตเซเชถเซเช เช
เชจเซ เชฐเชจ เชเชฐเซเชถเซเช kubelet
:
$ mkdir pods
$ sudo ./kubelet --pod-manifest-path=pods
เชชเชเซ, เช เชจเซเชฏ เชเชฐเซเชฎเชฟเชจเชฒ/tmux เชตเชฟเชจเซเชกเซเชฎเชพเช/เชเซ เชเชเชเชชเชฃ เชนเซเชฏ, เช เชฎเซ เชชเซเชก เชฎเซเชจเชฟเชซเซเชธเซเช เชฌเชจเชพเชตเซเชถเซเช:
$ cat <<EOF > pods/hello.yaml
apiVersion: v1
kind: Pod
metadata:
name: hello
spec:
containers:
- image: busybox
name: hello
command: ["echo", "hello world!"]
EOF
kubelet
เชเซเชเชฒเซเช เชเซเชคเชตเชฃเซเช เชฒเชเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซ เชเซ เช
เชจเซ เชเชตเซเช เชฒเชพเชเซ เชเซ เชเซ เชเชเช เชฅเช เชฐเชนเซเชฏเซเช เชจเชฅเซ. เชชเชฐเชเชคเซ เชคเซ เชธเชพเชเซเช เชจเชฅเซ! เชเชพเชฒเซ เชกเซเชเชฐเชจเซ เชเซเชเช:
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8c8a35e26663 busybox "echo 'hello world!'" 36 seconds ago Exited (0) 36 seconds ago k8s_hello_hello-mink8s_default_ab61ef0307c6e0dee2ab05dc1ff94812_4
68f670c3c85f k8s.gcr.io/pause:3.2 "/pause" 2 minutes ago Up 2 minutes k8s_POD_hello-mink8s_default_ab61ef0307c6e0dee2ab05dc1ff94812_0
$ sudo docker logs k8s_hello_hello-mink8s_default_ab61ef0307c6e0dee2ab05dc1ff94812_4
hello world!
kubelet
เชฎเซเช เชชเซเชก เชฎเซเชจเชฟเชซเซเชธเซเช เชตเชพเชเชเซเชฏเซเช เช
เชจเซ เชกเซเชเชฐเชจเซ เช
เชฎเชพเชฐเชพ เชธเซเชชเชทเซเชเซเชเชฐเชฃเซ เช
เชจเซเชธเชพเชฐ เชฅเซเชกเชพ เชเชจเซเชเซเชจเชฐ เชฒเซเชเช เชเชฐเชตเชพเชจเซ เชเชฆเซเชถ เชเชชเซเชฏเซ. (เชเซ เชคเชฎเซ "เชฅเซเชญเซ" เชเชจเซเชเซเชจเชฐ เชตเชฟเชถเซ เชเชถเซเชเชฐเซเชฏ เชชเชพเชฎเซ เชฐเชนเซเชฏเชพเช เชเซ, เชคเซ เชคเซ เชเซเชฌเชฐเชจเซเชเซเชธ เชนเซเช เชเซ - เชเซเช busybox
เชเชฒเซเชฒเซเชเชฟเชค เชเชฆเซเชถ เชธเชพเชฅเซ เช
เชจเซ เชธเซเชฅเชฟเชฐ เชชเซเชก เชเชพเชขเซ เชจเชพเชเชตเชพเชฎเชพเช เชเชตเซ เชคเซเชฏเชพเช เชธเซเชงเซ เชคเซเชจเซ เช
เชจเชฟเชถเซเชเชฟเชค เชธเชฎเชฏ เชฎเชพเชเซ เชชเซเชจเชเชชเซเชฐเชพเชฐเชเชญ เชเชฐเชถเซ.
เชคเชฎเชพเชฐเซ เชเชพเชคเชจเซ เช เชญเชฟเชจเชเชฆเชจ เชเชชเซ. เช เชฎเซ เชนเชฎเชฃเชพเช เช เชเชฐเซเชฎเชฟเชจเชฒ เชชเชฐ เชเซเชเซเชธเซเชเชจเซ เชเชเชเชชเซเช เชเชฐเชตเชพเชจเซ เชธเซเชฅเซ เชเซเชเชเชตเชฃเชญเชฐเซ เชฐเซเชคเซเชฎเชพเชเชฅเซ เชเช เชธเชพเชฅเซ เชเชตเซเชฏเชพ เชเซเช!
เชฒเซเชจเซเช เชตเชเซเชฐเซ
เช
เชฎเชพเชฐเซเช เช
เชเชคเชฟเชฎ เชงเซเชฏเซเชฏ เชเซเชฌเชฐเชจเซเชเซเชธ API เชเชฒเชพเชตเชตเชพเชจเซเช เชเซ, เชชเชฐเชเชคเซ เชคเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชชเชฃเซ เชชเชนเซเชฒเชพ เชเชฒเชพเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ pods/etcd.yaml
):
apiVersion: v1
kind: Pod
metadata:
name: etcd
namespace: kube-system
spec:
containers:
- name: etcd
command:
- etcd
- --data-dir=/var/lib/etcd
image: k8s.gcr.io/etcd:3.4.3-0
volumeMounts:
- mountPath: /var/lib/etcd
name: etcd-data
hostNetwork: true
volumes:
- hostPath:
path: /var/lib/etcd
type: DirectoryOrCreate
name: etcd-data
เชเซ เชคเชฎเซ เชเซเชฏเชพเชฐเซเชฏ เชเซเชฌเชฐเชจเซเชเซเชธ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซเชฏเซเช เชนเซเชฏ, เชคเซ เช YAML เชซเชพเชเชฒเซ เชคเชฎเชจเซ เชชเชฐเชฟเชเชฟเชค เชนเซเชตเชพ เชเซเชเช. เช เชนเซเช เชฎเชพเชคเซเชฐ เชฌเซ เช เชฎเซเชฆเซเชฆเชพ เชจเซเชเชงเชตเชพ เชฏเซเชเซเชฏ เชเซ:
เช
เชฎเซ เชนเซเชธเซเช เชซเซเชฒเซเชกเชฐ เชฎเชพเชเชจเซเช เชเชฐเซเชฏเซเช เชเซ /var/lib/etcd
เชชเซเชกเชฎเชพเช เชเซเชฅเซ เชชเซเชจเชเชชเซเชฐเชพเชฐเชเชญ เชเชฐเซเชฏเชพ เชชเชเซ etcd เชกเซเชเชพ เชธเชพเชเชตเชตเชพเชฎเชพเช เชเชตเซ (เชเซ เช เชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชคเซ, เชฆเชฐ เชตเชเชคเซ เชชเซเชก เชชเซเชจเชเชชเซเชฐเชพเชฐเชเชญ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชคเซเชฏเชพเชฐเซ เชเซเชฒเชธเซเชเชฐ เชธเซเชฅเชฟเชคเชฟ เชญเซเชเชธเซ เชจเชพเชเชตเชพเชฎเชพเช เชเชตเชถเซ, เชเซ เชจเซเชฏเซเชจเชคเชฎ เชเซเชฌเชฐเชจเซเชเซเชธ เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชฎเชพเชเซ เชชเชฃ เชธเชพเชฐเซ เชฐเชนเซเชถเซ เชจเชนเซเช).
เช
เชฎเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฏเซเช เชเซ hostNetwork: true
. เช เชธเซเชเชฟเชเช, เชเชถเซเชเชฐเซเชฏเชเชจเช เชฐเซเชคเซ, เชชเซเชกเชจเชพ เชเชเชคเชฐเชฟเช เชจเซเชเชตเชฐเซเชเชจเซ เชฌเชฆเชฒเซ เชนเซเชธเซเช เชจเซเชเชตเชฐเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซ etcd เชจเซ เชเซเช เชตเซ เชเซ (เช API เชธเชฐเซเชตเชฐเชจเซ etcd เชเซเชฒเชธเซเชเชฐ เชถเซเชงเชตเชพเชจเซเช เชธเชฐเชณ เชฌเชจเชพเชตเชถเซ).
เชเช เชธเชฐเชณ เชคเชชเชพเชธ เชฌเชคเชพเชตเซ เชเซ เชเซ etcd เชเชฐเซเชเชฐ เชฒเซเชเชฒเชนเซเชธเซเช เชชเชฐ เชเชพเชฒเซ เชฐเชนเซเชฏเซเช เชเซ เช เชจเซ เชกเชฟเชธเซเช เชชเชฐ เชกเซเชเชพ เชธเชพเชเชตเซ เชฐเชนเซเชฏเซเช เชเซ:
$ curl localhost:2379/version
{"etcdserver":"3.4.3","etcdcluster":"3.4.0"}
$ sudo tree /var/lib/etcd/
/var/lib/etcd/
โโโ member
โโโ snap
โ โโโ db
โโโ wal
โโโ 0.tmp
โโโ 0000000000000000-0000000000000000.wal
API เชธเชฐเซเชตเชฐ เชถเชฐเซ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช
Kubernetes API เชธเชฐเซเชตเชฐ เชเชฒเชพเชตเชตเซเช เชตเชงเซ เชธเชฐเชณ เชเซ. เชเชเชฎเชพเชคเซเชฐ เชชเชฐเชฟเชฎเชพเชฃ เชเซ เชเซ เชชเชธเชพเชฐ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชคเซ เชเซ --etcd-servers
, เชคเชฎเซ เชเซ เช
เชชเซเชเซเชทเชพ เชเชฐเซ เชเซ เชคเซ เชเชฐเซ เชเซ:
apiVersion: v1
kind: Pod
metadata:
name: kube-apiserver
namespace: kube-system
spec:
containers:
- name: kube-apiserver
command:
- kube-apiserver
- --etcd-servers=http://127.0.0.1:2379
image: k8s.gcr.io/kube-apiserver:v1.18.5
hostNetwork: true
เช YAML เชซเชพเชเชฒเชจเซ เชกเชฟเชฐเซเชเซเชเชฐเซเชฎเชพเช เชฎเซเชเซ pods
, เช
เชจเซ API เชธเชฐเซเชตเชฐ เชถเชฐเซ เชฅเชถเซ. เชธเชพเชฅเซ เชคเชชเชพเชธ เชเชฐเซ เชฐเชนเซ เชเซ curl
เชฌเชคเชพเชตเซ เชเซ เชเซ Kubernetes API เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เชเชชเชจ เชเชเซเชธเซเชธ เชธเชพเชฅเซ เชชเซเชฐเซเช 8080 เชชเชฐ เชธเชพเชเชญเชณเซ เชฐเชนเซเชฏเซเช เชเซ - เชเซเช เชชเซเชฐเชฎเชพเชฃเซเชเชฐเชฃ เชเชฐเซเชฐเซ เชจเชฅเซ!
$ curl localhost:8080/healthz
ok
$ curl localhost:8080/api/v1/pods
{
"kind": "PodList",
"apiVersion": "v1",
"metadata": {
"selfLink": "/api/v1/pods",
"resourceVersion": "59"
},
"items": []
}
(เชซเชฐเซเชฅเซ, เชเชจเซ เชเชคเซเชชเชพเชฆเชจเชฎเชพเช เชเชฒเชพเชตเชถเซ เชจเชนเซเช! เชฎเชจเซ เชฅเซเชกเซเช เชเชถเซเชเชฐเซเชฏ เชฅเชฏเซเช เชเซ เชกเชฟเชซเซเชฒเซเช เชธเซเชเชฟเชเช เชเชเชฒเซ เช เชธเซเชฐเชเซเชทเชฟเชค เชเซ. เชชเชฐเชเชคเซ เชนเซเช เช เชจเซเชฎเชพเชจ เชเชฐเซ เชฐเชนเซเชฏเซ เชเซเช เชเซ เช เชตเชฟเชเชพเชธ เช เชจเซ เชชเชฐเซเชเซเชทเชฃเชจเซ เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ เชเซ.)
เช เชจเซ, เชธเซเชเชฆ เชเชถเซเชเชฐเซเชฏ, kubectl เชเซเชเชชเชฃ เชตเชงเชพเชฐเชพเชจเชพ เชธเซเชเชฟเชเชเซเชธ เชตเชฟเชจเชพ เชฌเซเชเซเชธเชจเซ เชฌเชนเชพเชฐ เชเชพเชฎ เชเชฐเซ เชเซ!
$ ./kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.5", GitCommit:"e6503f8d8f769ace2f338794c914a96fc335df0f", GitTreeState:"clean", BuildDate:"2020-06-26T03:47:41Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.5", GitCommit:"e6503f8d8f769ace2f338794c914a96fc335df0f", GitTreeState:"clean", BuildDate:"2020-06-26T03:39:24Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
$ ./kubectl get pod
No resources found in default namespace.
เชธเชฎเชธเซเชฏเชพ
เชชเชฐเชเชคเซ เชเซ เชคเชฎเซ เชฅเซเชกเซเช เชเชเชกเซเช เชเซเชฆเชถเซ, เชคเซ เชเชเชเช เชเซเชเซเช เชฅเช เชฐเชนเซเชฏเซเช เชนเซเชตเชพเชจเซเช เชเชฃเชพเชฏ เชเซ:
$ ./kubectl get pod -n kube-system
No resources found in kube-system namespace.
เช เชฎเซ เชฌเชจเชพเชตเซเชฒเซ เชธเซเชฅเชฟเชฐ เชถเซเชเชเซ เช เชฆเซเชถเซเชฏ เชฅเช เชเช เชเซ! เชนเชเซเชเชคเชฎเชพเช, เช เชฎเชพเชฐเซเช เชเซเชฌเซเชฒเซเช เชจเซเชก เชฌเชฟเชฒเชเซเชฒ เชถเซเชงเชพเชฏเซเชฒ เชจเชฅเซ:
$ ./kubectl get nodes
No resources found in default namespace.
เชถเซเช เชฌเชพเชฌเชค เชเซ? เชเซ เชคเชฎเชจเซ เชฅเซเชกเชพ เชซเชเชฐเชพ เชชเชนเซเชฒเชพ เชฏเชพเชฆ เชนเซเชฏ, เชคเซ เช เชฎเซ เชเชฎเชพเชจเซเชก เชฒเชพเชเชจ เชชเซเชฐเชพเชฎเซเชเชฐเซเชธเชจเชพ เช เชคเซเชฏเชเชค เชธเชฐเชณ เชธเซเช เชธเชพเชฅเซ เชเซเชฌเซเชฒเซเชเชจเซ เชถเชฐเซเชเชค เชเชฐเซ, เชเซเชฅเซ เชเซเชฏเซเชฌเซเชฒเซเช เชเชชเซเชเช เชธเชฐเซเชตเชฐเชจเซ เชธเชเชชเชฐเซเช เชเซเชตเซ เชฐเซเชคเซ เชเชฐเชตเซ เช เชจเซ เชคเซเชจเซ เชคเซเชจเซ เชธเซเชฅเชฟเชคเชฟ เชตเชฟเชถเซ เชเชพเชฃ เชเชฐเชตเซ เชคเซ เชเชพเชฃเชคเซเช เชจเชฅเซ. เชฆเชธเซเชคเชพเชตเซเชเซเชจเซ เช เชญเซเชฏเชพเชธ เชเชฐเซเชฏเชพ เชชเชเซ, เช เชฎเชจเซ เช เชจเซเชฐเซเชช เชงเซเชตเช เชฎเชณเซ เชเซ:
--kubeconfig string
เชซเชพเชเชฒเชจเซ เชฎเชพเชฐเซเช kubeconfig
, เชเซ API เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ เชเซเชตเซ เชฐเซเชคเซ เชเชจเซเชเซเช เชเชฐเชตเซเช เชคเซ เชธเซเชชเชทเซเช เชเชฐเซ เชเซ. เชเชชเชฒเชฌเซเชงเชคเชพ --kubeconfig
API เชธเชฐเซเชตเชฐ เชฎเซเชกเชจเซ เชธเชเซเชทเชฎ เชเชฐเซ เชเซ, เชจเชพ --kubeconfig
เชเชซเชฒเชพเชเชจ เชฎเซเชกเชจเซ เชธเชเซเชทเชฎ เชเชฐเซ เชเซ.
เช เชฌเชงเชพ เชธเชฎเชฏ, เชคเซ เชเชพเชฃเซเชฏเชพ เชตเชฟเชจเชพ, เช เชฎเซ "เชเชซเชฒเชพเชเชจ เชฎเซเชก" เชฎเชพเช เชเซเชฌเซเชฒเซเช เชเชฒเชพเชตเซ เชฐเชนเซเชฏเชพ เชนเชคเชพ. (เชเซ เชเชชเชฃเซ เชชเซเชกเชจเซเชเชฟเช เชนเซเชเช, เชคเซ เชเชชเชฃเซ เชเชเชฒ เชเซเชฌเซเชฒเซเชเชจเซ "เชฒเชเซเชคเซเชคเชฎ เชธเชงเซเชงเชฐ เชเซเชฌเชฐเชจเซเชเซเชธ" เชคเชฐเซเชเซ เชตเชฟเชเชพเชฐเซ เชถเชเซเช, เชชเชฐเชเชคเซ เชคเซ เชเซเชฌ เชเชเชเชพเชณเชพเชเชจเช เชนเชถเซ). "เชตเชพเชธเซเชคเชตเชฟเช" เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชเชพเชฐเซเชฏ เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชฎเชพเชฐเซ kubeconfig เชซเชพเชเชฒเชจเซ kubelet เชชเชฐ เชชเชพเชธ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซเชฅเซ เชคเซ API เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ เชเซเชตเซ เชฐเซเชคเซ เชตเชพเชค เชเชฐเชตเซ เชคเซ เชเชพเชฃเซ. เชธเชฆเชญเชพเชเซเชฏเซ เชคเซ เชเชเชฆเชฎ เชธเชฐเชณ เชเซ (เชเชพเชฐเชฃ เชเซ เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชเซเช เชชเซเชฐเชฎเชพเชฃเซเชเชฐเชฃ เช เชฅเชตเชพ เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐ เชธเชฎเชธเซเชฏเชพเช เชจเชฅเซ):
apiVersion: v1
kind: Config
clusters:
- cluster:
server: http://127.0.0.1:8080
name: mink8s
contexts:
- context:
cluster: mink8s
name: mink8s
current-context: mink8s
เช เชคเชฐเซเชเซ เชธเชพเชเชตเซ kubeconfig.yaml
, เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชฎเชพเชฐเซ เชจเชพเชเซ kubelet
เช
เชจเซ เชเชฐเซเชฐเซ เชชเชฐเชฟเชฎเชพเชฃเซ เชธเชพเชฅเซ เชชเซเชจเชเชชเซเชฐเชพเชฐเชเชญ เชเชฐเซ:
$ sudo ./kubelet --pod-manifest-path=pods --kubeconfig=kubeconfig.yaml
(เชฎเชพเชฐเซเช เชฆเซเชตเชพเชฐเชพ, เชเซ เชคเชฎเซ เชเซเชฌเซเชฒเซเช เชเชพเชฒเซ เชจ เชนเซเชฏ เชคเซเชฏเชพเชฐเซ เชเชฐเซเชฒ เชฆเซเชตเชพเชฐเชพ API เชจเซ เชเชเซเชธเซเชธ เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ เชเซ, เชคเซ เชคเชฎเซ เชเซเชถเซ เชเซ เชคเซ เชนเชเซ เชชเชฃ เชเชพเชฒเซ เชฐเชนเซเชฏเซเช เชเซ! เชเซเชฌเซเชฒเซเช เชกเซเชเชฐ เชเซเชตเชพ เชคเซเชจเชพ เชชเซเชกเซเชธเชจเซเช "เชชเชฟเชคเซ" เชจเชฅเซ, เชคเซ "เชจเชฟเชฏเชเชคเซเชฐเชฃ" เชเซเชตเซเช เชเซ. เชกเชฟเชฎเชจ." เชเซเชฌเซเชฒเซเช เชฆเซเชตเชพเชฐเชพ เชธเชเชเชพเชฒเชฟเชค เชเชจเซเชเซเชจเชฐ เชเซเชฏเชพเช เชธเซเชงเซ เชเซเชฌเซเชฒเซเช เชคเซเชฎเชจเซ เชฐเซเชเซ เชจเชนเซเช เชคเซเชฏเชพเช เชธเซเชงเซ เชเชพเชฒเชตเชพเชจเซเช เชเชพเชฒเซ เชฐเชนเซเชถเซ.)
เชฅเซเชกเซเชตเชพเชฐเชฎเชพเช kubectl
เช
เชฎเชพเชฐเซ เช
เชชเซเชเซเชทเชพ เชฎเซเชเชฌ เช
เชฎเชจเซ เชถเซเชเชเซ เช
เชจเซ เชเชพเชเช เซ เชฌเชคเชพเชตเชตเชพ เชเซเชเช:
$ ./kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
default hello-mink8s 0/1 CrashLoopBackOff 261 21h
kube-system etcd-mink8s 1/1 Running 0 21h
kube-system kube-apiserver-mink8s 1/1 Running 0 21h
$ ./kubectl get nodes -owide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
mink8s Ready <none> 21h v1.18.5 10.70.10.228 <none> Ubuntu 18.04.4 LTS 4.15.0-109-generic docker://19.3.6
เชเชพเชฒเซ เช เชตเชเชคเซ เชเชฐเซเชเชฐ เชชเซเชคเชพเชจเซ เช เชญเชฟเชจเชเชฆเชจ เชเชชเซเช (เชนเซเช เชเชพเชฃเซเช เชเซเช เชเซ เชฎเซเช เชชเชนเซเชฒเซเชฅเซ เช เชชเซเชคเชพเชจเซ เช เชญเชฟเชจเชเชฆเชจ เชเชชเซเชฏเชพ เชเซ) - เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชธเชเชชเซเชฐเซเชฃ เชเชพเชฐเซเชฏเชเชพเชฐเซ API เชธเชพเชฅเซ เชจเซเชฏเซเชจเชคเชฎ เชเซเชฌเชฐเชจเซเชเซเชธ "เชเซเชฒเชธเซเชเชฐ" เชเชพเชฒเซ เชฐเชนเซเชฏเซเช เชเซ!
เช เชฎเซ เชนเซเช เชณ เชฒเซเชจเซเช
เชนเชตเซ เชเชพเชฒเซ เชเซเชเช เชเซ API เชถเซเช เชธเชเซเชทเชฎ เชเซ. เชเชพเชฒเซ nginx เชชเซเชกเชฅเซ เชถเชฐเซเชเชค เชเชฐเซเช:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- image: nginx
name: nginx
เช เชนเซเช เช เชฎเชจเซ เชเช เชฐเชธเชชเซเชฐเชฆ เชญเซเชฒ เชฎเชณเซ เชเซ:
$ ./kubectl apply -f nginx.yaml
Error from server (Forbidden): error when creating "nginx.yaml": pods "nginx" is
forbidden: error looking up service account default/default: serviceaccount
"default" not found
$ ./kubectl get serviceaccounts
No resources found in default namespace.
เช เชนเซเช เชเชชเชฃเซ เชเซเชเช เชเซเช เชเซ เชเชชเชฃเซเช เชเซเชฌเชฐเชจเซเชเซเชธ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเซเชเชฒเซเช เช เชชเซเชฐเซเชฃ เชเซ - เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชธเซเชตเชพเช เชฎเชพเชเซ เชเซเช เชเชเชพเชเชจเซเช เชจเชฅเซ. เชเชพเชฒเซ เชฎเซเชจเซเชฏเซเช เชฒเซ เชธเชฐเซเชตเชฟเชธ เชเชเชพเชเชจเซเช เชฌเชจเชพเชตเซเชจเซ เชซเชฐเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเช เช เชจเซ เชเซเชเช เชเซ เชถเซเช เชฅเชพเชฏ เชเซ:
$ cat <<EOS | ./kubectl apply -f -
apiVersion: v1
kind: ServiceAccount
metadata:
name: default
namespace: default
EOS
serviceaccount/default created
$ ./kubectl apply -f nginx.yaml
Error from server (ServerTimeout): error when creating "nginx.yaml": No API
token found for service account "default", retry after the token is
automatically created and added to the service account
เช เชฎเซ เชธเซเชตเชพ เชเชพเชคเซเช เชฎเซเชจเซเชฏเซเช เชฒเซ เชฌเชจเชพเชตเซเชฏเซเช เชคเซเชฏเชพเชฐเซ เชชเชฃ, เชชเซเชฐเชฎเชพเชฃเซเชเชฐเชฃ เชเซเชเชจ เชเชจเชฐเซเช เชฅเชคเซเช เชจเชฅเซ. เชเซเชฎ เชเซเชฎ เชเชชเชฃเซ เชเชชเชฃเชพ เชจเซเชฏเซเชจเชคเชฎ "เชเซเชฒเชธเซเชเชฐ" เชธเชพเชฅเซ เชชเซเชฐเชฏเซเช เชเชฐเชตเชพเชจเซเช เชเชพเชฒเซ เชฐเชพเชเซเช เชเซเช เชคเซเชฎ, เชเชชเชฃเซ เชเซเชถเซเช เชเซ เชฎเซเชเชพเชญเชพเชเชจเซ เชเชชเชฏเซเชเซ เชตเชธเซเชคเซเช เชเซ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชเชชเชฎเซเชณเซ เชฅเชพเชฏ เชเซ เชคเซ เชเซเชเซ เชเซ. Kubernetes API เชธเชฐเซเชตเชฐ เชเชเชฆเชฎ เชจเซเชฏเซเชจเชคเชฎ เชเซ, เชเซเชฎเชพเช เชฎเซเชเชพเชญเชพเชเชจเซ เชนเซเชตเซ เชฒเชฟเชซเซเชเชฟเชเช เช เชจเซ เชเชเซเชฎเซเชเชฟเช เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชตเชฟเชตเชฟเชง เชจเชฟเชฏเชเชคเซเชฐเชเซ เช เชจเซ เชฌเซเชเชเซเชฐเชพเชเชจเซเชก เชเซเชฌเซเชธเชฎเชพเช เชฅเชพเชฏ เชเซ เชเซ เชนเชเซ เชธเซเชงเซ เชเชพเชฒเซ เชฐเชนเซเชฏเชพเช เชจเชฅเซ.
เช
เชฎเซ เชตเชฟเชเชฒเซเชช เชธเซเช เชเชฐเซเชจเซ เช เชธเชฎเชธเซเชฏเชพเชจเซ เชฆเซเชฐ เชเชฐเซ เชถเชเซเช เชเซเช automountServiceAccountToken
เชธเซเชตเชพ เชเชพเชคเชพ เชฎเชพเชเซ (เชเชพเชฐเชฃ เชเซ เชเชชเชฃเซ เชเซเชเชชเชฃ เชฐเซเชคเซ เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เชชเชกเชถเซ เชจเชนเซเช):
$ cat <<EOS | ./kubectl apply -f -
apiVersion: v1
kind: ServiceAccount
metadata:
name: default
namespace: default
automountServiceAccountToken: false
EOS
serviceaccount/default configured
$ ./kubectl apply -f nginx.yaml
pod/nginx created
$ ./kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx 0/1 Pending 0 13m
เชเซเชฒเซเชฒเซ, เชชเซเชก เชฆเซเชเชพเชฏเซ เชเซ! เชชเชฐเชเชคเซ เชนเชเซเชเชคเชฎเชพเช เชคเซ เชถเชฐเซ เชฅเชถเซ เชจเชนเซเช เชเชพเชฐเชฃ เชเซ เช
เชฎเชพเชฐเซ เชชเชพเชธเซ เชจเชฅเซ
เชนเชเซเชเชคเชฎเชพเช, เชคเชฎเชพเชฐเซ เชชเซเชก เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชถเซเชกเซเชฏเซเชฒเชฐเชจเซ เชเชฐเซเชฐ เชจเชฅเซ. เชคเชฎเซ เชชเซเชฐเชพเชฎเซเชเชฐเชฎเชพเช เชฎเซเชจเชฟเชซเซเชธเซเชเชฎเชพเช เชฎเซเชจเซเชฏเซเช
เชฒเซ เชจเซเชก เชเชฎเซเชฐเซ เชถเชเซ เชเซ nodeName
:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- image: nginx
name: nginx
nodeName: mink8s
(เชฌเชฆเชฒเซ mink8s
เชจเซเชกเชจเชพ เชจเชพเชฎ เชชเชฐ.) เชกเชฟเชฒเซเช เช
เชจเซ เชเชชเซเชฒเชพเชฏ เชเชฐเซเชฏเชพ เชชเชเซ, เชเชชเชฃเซ เชเซเชเช เชเซเช เชเซ nginx เชถเชฐเซ เชฅเช เชเชฏเซเช เชเซ เช
เชจเซ เชเชเชคเชฐเชฟเช IP เชเชกเซเชฐเซเชธ เชธเชพเชเชญเชณเซ เชฐเชนเซเชฏเซเช เชเซ:
$ ./kubectl delete pod nginx
pod "nginx" deleted
$ ./kubectl apply -f nginx.yaml
pod/nginx created
$ ./kubectl get pods -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx 1/1 Running 0 30s 172.17.0.2 mink8s <none> <none>
$ curl -s 172.17.0.2 | head -4
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
เชชเซเชกเซเชธ เชตเชเซเชเซเชจเซเช เชจเซเชเชตเชฐเซเช เชฏเซเชเซเชฏ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ เชคเซเชจเซ เชเชพเชคเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชฎเซ เชฌเซเชเชพ เชชเซเชกเชฎเชพเชเชฅเซ เชเชฐเซเชฒ เชเชฒเชพเชตเซ เชถเชเซเช เชเซเช:
$ cat <<EOS | ./kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
name: curl
spec:
containers:
- image: curlimages/curl
name: curl
command: ["curl", "172.17.0.2"]
nodeName: mink8s
EOS
pod/curl created
$ ./kubectl logs curl | head -6
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
เช เชตเชพเชคเชพเชตเชฐเชฃเชฎเชพเช เชเซเชฆเชตเซเช เช เชจเซ เชถเซเช เชเชพเชฎ เชเชฐเซ เชเซ เช เชจเซ เชถเซเช เชจเชฅเซ เชคเซ เชเซเชตเชพเชจเซเช เชเซเชฌ เช เชฐเชธเชชเซเชฐเชฆ เชเซ. เชฎเชจเซ เชเชพเชฃเชตเชพ เชฎเชณเซเชฏเซเช เชเซ ConfigMap เช เชจเซ เชธเชฟเชเซเชฐเซเช เช เชชเซเชเซเชทเชพ เชฎเซเชเชฌ เชเชพเชฎ เชเชฐเซ เชเซ, เชชเชฐเชเชคเซ เชธเชฐเซเชตเชฟเชธ เช เชจเซ เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเช เชจเชฅเซ เชเชฐเชคเชพ.
เชธเชซเชณเชคเชพ!
เช เชชเซเชธเซเช เชฒเชพเชเชฌเซ เชฅเช เชฐเชนเซ เชเซ, เชคเซเชฅเซ เชนเซเช เชตเชฟเชเชฏ เชเชพเชนเซเชฐ เชเชฐเชตเชพ เชเช เชฐเชนเซเชฏเซ เชเซเช เช เชจเซ เชเชนเซเช เชเซเช เชเซ เช เชเช เชธเชเซเชทเชฎ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชเซ เชเซเชจเซ "เชเซเชฌเชฐเชจเซเชเซเชธ" เชเชนเซ เชถเชเชพเชฏ. เชธเชพเชฐเชพเชเชถ เชฎเชพเชเซ: เชเชพเชฐ เชฆเซเชตเชฟเชธเชเชเซ, เชชเชพเชเช เชเชฆเซเชถ เชตเชพเชเซเชฏ เชชเชฐเชฟเชฎเชพเชฃเซ เช เชจเซ YAML เชจเซ โโ"เชฎเชพเชคเซเชฐ" 45 เชฐเซเชเชพเช (เชจเชฅเซ เชเซเชฌเชฐเชจเซเชเซเชธเชจเชพ เชงเซเชฐเชฃเซ เชฎเซเชเชฌ) เช เชจเซ เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชฅเซเชกเซเช เชตเชธเซเชคเซเช เชเชพเชฎ เชเชฐเซ เชฐเชนเซ เชเซ:
- เชจเชฟเชฏเชฎเชฟเชค เชเซเชฌเชฐเชจเซเชเซเชธ API (เชฅเซเชกเชพ เชนเซเชเซเชธ เชธเชพเชฅเซ) เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชถเซเชเชเซเชจเซเช เชธเชเชเชพเชฒเชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
- เชคเชฎเซ เชธเชพเชฐเซเชตเชเชจเชฟเช เชเชจเซเชเซเชจเชฐ เชเชฌเซเช เช เชชเชฒเซเชก เช เชจเซ เชธเชเชเชพเชฒเชฟเชค เชเชฐเซ เชถเชเซ เชเซ
- เชถเซเชเชเซ เชเซเชตเชเชค เชฐเชนเซ เชเซ เช เชจเซ เชเชชเชฎเซเชณเซ เชชเซเชจเชเชชเซเชฐเชพเชฐเชเชญ เชฅเชพเชฏ เชเซ
- เชธเชฎเชพเชจ เชจเซเชกเชจเซ เช เชเชฆเชฐ เชชเซเชกเซเชธ เชตเชเซเชเซ เชจเซเชเชตเชฐเซเชเชฟเชเช เชเซเชฌ เชธเชพเชฐเซ เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ
- ConfigMap, เชธเชฟเชเซเชฐเซเช เช เชจเซ เชธเชฐเชณ เชธเซเชเซเชฐเซเช เชฎเชพเชเชจเซเช เชเชฐเชตเชพเชจเซเช เชเชพเชฎ เช เชชเซเชเซเชทเชพ เชฎเซเชเชฌ
เชชเชฐเชเชคเซ เชเซเชฌเชฐเชจเซเชเซเชธเชจเซ เชเชฐเซเชเชฐ เชเชชเชฏเซเชเซ เชฌเชจเชพเชตเซ เชเซ เชคเซเชฎเชพเชเชฅเซ เชเชฃเซเช เชฌเชงเซเช เชนเชเซ เชเซเชเซ เชเซ, เชเซเชฎ เชเซ:
- เชชเซเชก เชถเซเชกเซเชฏเซเชฒเชฐ
- เชชเซเชฐเชฎเชพเชฃเซเชเชฐเชฃ/เช เชงเชฟเชเซเชคเชคเชพ
- เชฌเชนเซเชตเชฟเชง เชเชพเชเช เซ
- เชธเซเชตเชพเชเชจเซเช เชจเซเชเชตเชฐเซเช
- เชเซเชฒเชธเซเชเชฐเซเชก เชเชเชคเชฐเชฟเช DNS
- เชธเชฐเซเชตเชฟเชธ เชเชเชพเชเชจเซเชเซเชธ, เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเชเซเชธ, เชเซเชฒเชพเชเชก เชชเซเชฐเชฆเชพเชคเชพเช เชธเชพเชฅเซ เชเชเซเชเชฐเชฃ เช เชจเซ เช เชจเซเชฏ เชฎเซเชเชพเชญเชพเชเชจเซ เชเซเชกเซเช เชฎเชพเชเซ เชเชเชเซเชฐเซเชฒเชฐเซเชธ เชเซ เชเซเชฌเชฐเชจเซเชเซเชธ เชฒเชพเชตเซ เชเซ
เชคเซ เชเชชเชฃเซ เชเชฐเซเชเชฐ เชถเซเช เชฎเซเชณเชตเซเชฏเซเช? Kubernetes API, เชคเซเชจเชพ เชชเซเชคเชพเชจเชพ เชชเชฐ เชเชพเชฒเซ เชเซ, เชคเซ เชเชฐเซเชเชฐ เชฎเชพเชเซ เชฎเชพเชคเซเชฐ เชเช เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชเซ เชเชจเซเชเซเชจเชฐ เชเชเซเชฎเซเชถเชจ. เชคเซ เชเชฃเซเช เชเชพเชฎ เชเชฐเชคเซเช เชจเชฅเซ - เชคเซ API เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชตเชฟเชตเชฟเชง เชจเชฟเชฏเชเชคเซเชฐเชเซ เช เชจเซ เชเชชเชฐเซเชเชฐเซ เชฎเชพเชเซเชจเซเช เชเชพเชฎ เชเซ - เชชเชฐเชเชคเซ เชคเซ เชเชเซเชฎเซเชถเชจ เชฎเชพเชเซ เชธเซเชธเชเชเชค เชตเชพเชคเชพเชตเชฐเชฃ เชชเซเชฐเซเช เชชเชพเชกเซ เชเซ.
เชตเชงเซ เชตเชพเชเชเซ:
เชธเชฟเชธเซเชเชฎ เชเชกเชฎเชฟเชจเชฟเชธเซเชเซเชฐเซเชเชฐเซเชธ, เชกเซเชตเชฒเชชเชฐเซเชธ เช เชจเซ เชเซเชธเซเชเชฐเซเชธเซ เชถเชพ เชฎเชพเชเซ DevOps เชชเซเชฐเซเชเซเชเชฟเชธ เชถเซเชเชตเซ เชเซเชเช? เชฅเซเชจเซเชธ - เชธเซเชเซเชฒเซเชฌเชฒ เชชเซเชฐเซเชฎเชฟเชฅเชฟเชฏเชธ GitLab QA เชเซเชฎ GitLab เชชเชฐเชซเซเชฐเซเชฎเชจเซเชธ เชเซเชฒเชจเซ เชเชชเชฏเซเช เชเซเชตเซ เชฐเซเชคเซ เชเชฐเซ เชเซ เชฒเซเชเซ - เชชเซเชฐเซเชฎเชฟเชฅเชฟเชฏเชธ เช เชญเชฟเชเชฎเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฒเซเช เชธเชเชเซเชฐเชน DevOps เชจเชพ เชเซเชตเชจเชจเซ เชเช เชฆเชฟเชตเชธ
เชธเซเชฐเซเชธ: www.habr.com