เดเตเดดเตโเดธเต เดคเตเดเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฑเต เดคเดฒเตเดจเตเดจเต เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเดฟเดฏเดคเดพเดฃเต เดฒเตเดเดจเดคเตเดคเดฟเดจเตเดฑเต เดชเดฐเดฟเดญเดพเดท
เดจเดฟเดเตเดเตพ เดเดคเต เดตเดพเดฏเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพ เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเดจเต เดเตเดฑเดฟเดเตเดเต เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดเตเดเตเดเดฟเดฐเดฟเดเตเดเดพเด (เดเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพ เดเดเตเดเดจเต เดเดตเดฟเดเต เดเดคเตเดคเดฟ?) เดเดจเตเดจเดพเตฝ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดเดจเตเดคเดพเดฃเต เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต? เด
เดธเดคเตเดฏเด เดชเดฑเดเตเดเดพเตฝ, เดเดจเดฟเดเตเดเต 100% เดเดฑเดชเตเดชเดฟเดฒเตเดฒ. เดเดจเตเดจเดพเตฝ เดเดจเตเดคเดฐเดฟเดเดคเดเดณเดฟเดฒเตเดเตเดเต เดเตเดดเดฟเดเตเดเดฟเดเตเดจเตเดจเดคเต เดฐเดธเดเดฐเดฎเดพเดฃเตเดจเตเดจเต เดเดพเตป เดเดฐเตเดคเตเดจเตเดจเต, เด
เดคเดฟเดจเตเดฑเต เด
เดฎเตเตผเดคเตเดคเดคเดเดณเตเดเต เดชเดฒ เดชเดพเดณเดฟเดเตพเดเตเดเต เดเตเดดเดฟเตฝ เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเตฝ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดเดจเตเดคเดพเดฃเต เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเดคเตเดจเตเดจเต. เด
เดคเดฟเดจเดพเตฝ เดตเดฟเดจเตเดฆเดคเตเดคเดฟเดจเดพเดฏเดฟ, เดเดฑเตเดฑเดตเตเด เดเตเดฑเดเตเด โเดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดเตเดฒเดธเตเดฑเตเดฑเตผโ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดเดเตเดเดจเตเดฏเตเดฃเตเดเตเดจเตเดจเต เดจเตเดเตเดเดพเด. (เดเดคเต เดตเดณเดฐเต เดเดณเตเดชเตเดชเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด
เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต, เดฒเดฟเดจเดเตเดธเต, เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดเดจเตเดจเดฟเดตเดฏเตเดเตเดเตเดฑเดฟเดเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เด
เดเดฟเดธเตเดฅเดพเดจ เด
เดฑเดฟเดตเตเดฃเตเดเตเดจเตเดจเต เดเดพเตป เดเดฐเตเดคเตเดจเตเดจเต. เดเดเตเดเตพ เดเดตเดฟเดเต เดธเดเดธเดพเดฐเดฟเดเตเดเตเดจเตเดจเดคเตเดฒเตเดฒเดพเด เดเดตเตเดทเดฃ/เดชเด เดจ เดเดตเดถเตเดฏเดเตเดเตพเดเตเดเต เดฎเดพเดคเตเดฐเดฎเตเดณเตเดณเดคเดพเดฃเต, เด
เดตเดฏเตเดจเตเดจเตเด เดจเดฟเตผเดฎเตเดฎเดพเดฃเดคเตเดคเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฐเตเดคเต!
เดชเตเดพเดคเต เด เดตเดฒเตเดพเดเดจเด
เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เดเดเดเดเตเดเตพ เด
เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดเดคเดจเตเดธเดฐเดฟเดเตเดเต
เดเตเดฑเดเตเดเดคเต เดเดเตเดเต เดเดเดเดเตเดเดณเตเดเตเดเดฟเดฒเตเด เดเดตเดฟเดเต เดเดพเดฃเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเต, เดเดจเตเดจเดพเตฝ เด
เดตเดฏเดฟเตฝ เดฎเดฟเดเตเดเดคเตเด เดเดเตเดเตพ เด
เดตเดเดฃเดฟเดเตเดเตเด. เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดเดจเตเดจเต เดจเตเดฏเดพเดฏเดฎเดพเดฏเตเด เดตเดฟเดณเดฟเดเตเดเดพเดตเตเดจเตเดจ เดเดฑเตเดฑเดตเตเด เดเตเดฑเดเตเด เดเดพเดฐเตเดฏเด เดฎเตเดจเตเดจเต เดชเตเดฐเดงเดพเดจ เดเดเดเดเตเดเตพ เดเตพเดเตเดเตเดณเตเดณเตเดจเตเดจเตเดตเตเดจเตเดจเต เดเดพเตป เดชเตเดฐเดธเตเดคเดพเดตเดฟเดเตเดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต:
- เดเตเดฌเตเดฒเตเดฑเตเดฑเต
- kube-apiserver (เดเดคเต etcd-เดฏเต เดเดถเตเดฐเดฏเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต - เด เดคเดฟเดจเตเดฑเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต)
- เดเดฃเตเดเตเดฏเตเดจเตผ เดฑเตบเดเตเด (เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ เดกเตเดเตเดเตผ)
เดเดฐเตเดจเตเดจเดฟเดจเตเดฏเตเด เดเตเดฑเดฟเดเตเดเต เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเตป เดเดจเตเดคเดพเดฃเต เดชเดฑเดฏเตเดจเตเดจเดคเตเดจเตเดจเต เดจเดฎเตเดเตเดเต เดจเตเดเตเดเดพเด (
เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต เดเดฐเต เดจเตเดกเดฟเดฒเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเดเดจเตเดฑเต. เดชเตเดกเดฟเตฝ เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเตเดจเตเดจเต เดเดคเต เดเดฑเดชเตเดชเดพเดเตเดเตเดจเตเดจเต.
เดตเตเดฃเตเดเดคเตเดฐ เดฒเดณเดฟเดคเดฎเดพเดฏเดฟ เดคเตเดจเตเดจเตเดจเตเดจเต. เดเดจเตเดคเตเดชเดฑเตเดฑเดฟ เดเดฃเตเดเตเดฏเตเดจเตผ เดฑเตบเดเตเดฎเตเดเตพ (เดเดฃเตเดเตเดฏเตเดจเตผ เดฑเตบเดเตเด)?
เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดฐเตเดชเดเตฝเดชเตเดชเดจ เดเตเดฏเตโเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดชเตเดฐเตเดเตเดฐเดพเดฎเดพเดฃเต เดเดฃเตเดเตเดฏเตโเดจเตผ เดฑเตบเดเตเด.
เดตเดณเดฐเต เดตเดฟเดเตเดเดพเดจเดชเตเดฐเดฆเด. เดเดจเตเดจเดพเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เดกเตเดเตเดเดฑเดฟเดจเต เดชเดฐเดฟเดเดฏเดฎเตเดฃเตเดเตเดเตเดเดฟเตฝ, เด เดคเต เดเดจเตเดคเดพเดฃเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเตเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดชเตเดคเตเดตเดพเดฏ เดเดฐเต เดงเดพเดฐเดฃ เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด. (เดเดฃเตเดเตเดฏเตโเดจเตผ เดฑเตบเดเตเดฎเตเด เดเตเดฌเตเดฒเตเดฑเตเดฑเตเด เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดเตเดเตพ เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฑเต เดตเดฟเดถเดฆเดพเดเดถเดเตเดเตพ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดตเดณเดฐเต เดธเตเดเตเดทเตเดฎเดฎเดพเดฃเต, เดเดพเตป เด เดตเดฏเดฟเดฒเตเดเตเดเต เดเดตเดฟเดเต เดเดเดเตเดเดฟเดฒเตเดฒ.)
ะ API เดธเตเตผเดตเตผ?
Kubernetes API เดคเตเดฑเดจเตเดจเตเดเดพเดเตเดเตเดจเตเดจ Kubernetes เดเตบเดเตเดฐเตเตพ เดชเดพเดจเตฝ เดเดเดเดฎเดพเดฃเต API เดธเตเตผเดตเตผ. เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดชเดพเดจเดฒเดฟเดจเตเดฑเต เดเตเดฒเดฏเดจเตเดฑเต เดตเดถเดฎเดพเดฃเต API เดธเตเตผเดตเตผ
Kubernetes-เดฎเดพเดฏเดฟ เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดเตเดฏเตโเดคเดฟเดเตเดเตเดณเตเดณ เดเตผเดเตเดเตเด API-เดฏเตเดฎเดพเดฏเดฟ เดจเตเดฐเดฟเดเตเดเต kubectl เดตเดดเดฟเดฏเต เดธเดเดตเดฆเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เดเดคเดพเดฃเต เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฑเต เดนเตเดฆเดฏเด - เดจเดฎเตเดเตเดเตเดฒเตเดฒเดพเดตเตผเดเตเดเตเด เด เดฑเดฟเดฏเดพเดตเตเดจเตเดจเดคเตเด เดเดทเตเดเดชเตเดชเตเดเตเดจเตเดจเดคเตเดฎเดพเดฏ (?) 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-เดฒเตเดเตเดเต เด
เดฏเดเตเด เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเดฒเดฟเตฝ เด เดเดชเตโเดทเตป เดธเดเตเดเดฎเดพเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเดฃเด. เดเตเดเตเดคเตฝ เดตเดฟเดตเดฐเดเตเดเตพเดเตเดเต, เดเดพเดฃเตเด.
เด เดเดชเตเดทเตป เดเดเตเดเดณเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตป เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต
เดเดฆเตเดฏเด เดจเดฎเตเดฎเตพ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดชเตเดกเตเดเตพเดเตเดเดพเดฏเดฟ เดเดฐเต เดกเดฏเดฑเดเตเดเดฑเดฟ เดธเตเดทเตเดเดฟเดเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเด 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
เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด เดเดฎเดพเตปเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดชเตเดกเต เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเดคเต เดตเดฐเต เด
เดคเต เด
เดจเดฟเดถเตเดเดฟเดคเดฎเดพเดฏเดฟ เดชเตเดจเดฐเดพเดฐเดเดญเดฟเดเตเดเตเด.
เดธเตเดตเดฏเด เด เดญเดฟเดจเดจเตเดฆเดฟเดเตเดเตเด. เดเตเตผเดฎเดฟเดจเดฒเดฟเดฒเตเดเตเดเต เดเตเดเตโเดธเตโเดฑเตเดฑเต เดเดเตเดเตโเดชเตเดเตเดเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด เดเดถเดฏเดเตเดเตเดดเดชเตเดชเดฎเตเดฃเตเดเดพเดเตเดเตเดจเตเดจ เดเดฐเต เดฎเดพเตผเดเตเดเด เดเดเตเดเตพ เดเดฃเตเดเตเดชเดฟเดเดฟเดเตเดเต!
เดฎเตเดคเดฒเดพเดฏเดต เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเด
เดเดเตเดเดณเตเดเต เดเดคเตเดฏเดจเตเดคเดฟเด เดฒเดเตเดทเตเดฏเด Kubernetes 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
เดจเดฟเดเตเดเตพ เดเดชเตเดชเตเดดเตเดเตเดเดฟเดฒเตเด Kubernetes-เตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ, เด YAML เดซเดฏเดฒเตเดเตพ เดจเดฟเดเตเดเตพเดเตเดเต เดชเดฐเดฟเดเดฟเดคเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด. เดเดตเดฟเดเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเดฃเตเด เดฐเดฃเตเดเต เดชเตเดฏเดฟเดจเตเดฑเตเดเตพ เดฎเดพเดคเตเดฐเดฎเตเดฏเตเดณเตเดณเต:
เดเดเตเดเตพ เดนเตเดธเตเดฑเตเดฑเต เดซเตเตพเดกเตผ เดฎเตเดฃเตเดเต เดเตเดฏเตเดคเต /var/lib/etcd
เดชเตเดจเดฐเดพเดฐเดเดญเดฟเดเตเดเดคเดฟเดจเต เดถเตเดทเด etcd เดกเดพเดฑเตเดฑ เดธเดเดฐเดเตเดทเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจ เดคเดฐเดคเตเดคเดฟเตฝ เดชเตเดกเดฟเตฝ (เดเดคเต เดเตเดฏเตเดคเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดชเตเดกเต เดชเตเดจเดฐเดพเดฐเดเดญเดฟเดเตเดเตเดฎเตเดชเตเดดเตเดฒเตเดฒเดพเด เดเตเดฒเดธเตเดฑเตเดฑเตผ เด
เดตเดธเตเดฅ เดฎเดพเดฏเตโเดเตเดเดชเตเดชเตเดเตเด, เดเดคเต เดเตเดฐเตเดเตเดเดฟเดฏ เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเดจเตเดชเตเดฒเตเด เดจเดฒเตเดฒเดคเดฒเตเดฒ).
เดเดเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเต hostNetwork: true
. เด เดเตเดฐเดฎเตเดเดฐเดฃเด, เดชเตเดกเดฟเดจเตเดฑเต เดเดจเตเดคเดฐเดฟเด เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเดฟเดจเต เดชเดเดฐเด เดนเตเดธเตเดฑเตเดฑเต เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต etcd เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดจเตเดจเต (เดเดคเต เดเดชเดฟเด เดธเตเตผเดตเดฑเดฟเดจเต 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
เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเตเด เดคเตเดฑเดจเตเดจ เดเดเตโเดธเดธเต เดเดณเตเดณ เดชเตเตผเดเตเดเต 8080-เตฝ Kubernetes API เดถเตเดฐเดตเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเตเดจเตเดจเต เดเดพเดฃเดฟเดเตเดเตเดจเตเดจเต - เดเดงเดฟเดเดพเดฐเดฟเดเดค เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ!
$ 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.
เดเดจเตเดคเดพเดฃเต เดเดพเดฐเตเดฏเด? เดเตเดฑเดเตเดเต เดเดฃเตเดกเดฟเดเดเตพ เดฎเตเดฎเตเดชเต เดจเดฟเดเตเดเตพ เดเตผเดเตเดเตเดจเตเดจเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดเดเตเดเตพ เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดเดฎเดพเตปเดกเต เดฒเตเตป เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเดพเดฃเต kubelet เดเดฐเดเดญเดฟเดเตเดเดคเต, เด เดคเดฟเดจเดพเตฝ API เดธเตเตผเดตเดฑเตเดฎเดพเดฏเดฟ เดเดเตเดเดจเต เดฌเดจเตเดงเดชเตเดชเตเดเดฃเดฎเตเดจเตเดจเตเด เด เดคเดฟเดจเตเดฑเต เด เดตเดธเตเดฅเดฏเต เด เดฑเดฟเดฏเดฟเดเตเดเดฃเดฎเตเดจเตเดจเตเด kubelet-เดจเต เด เดฑเดฟเดฏเดฟเดฒเตเดฒ. เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเตป เดชเด เดฟเดเตเด เดถเตเดทเด, เด เดจเตเดฌเดจเตเดง เดซเตเดฒเดพเดเต เดเดเตเดเตพ เดเดฃเตเดเตเดคเตเดคเตเดจเตเดจเต:
--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
(เดตเดดเดฟเดฏเดฟเตฝ, kubelet เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเดคเตเดคเดชเตเดชเตเตพ เดจเดฟเดเตเดเตพ API-เดฒเตเดเตเดเต curl เดตเดดเดฟ เดเดเตเดธเดธเต เดเตเดฏเตเดฏเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเดพเตฝ, เด เดคเต เดเดชเตเดชเตเดดเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเดพเดฏเดฟ เดจเดฟเดเตเดเตพ เดเดฃเตเดเตเดคเตเดคเตเด! Kubelet เด เดคเดฟเดจเตเดฑเต เดกเตเดเตเดเตผ เดชเตเดฒเตเดฏเตเดณเตเดณ เดชเตเดกเตเดเดณเตเดเต เดเดฐเต "เดฐเดเตเดทเดพเดเตผเดคเต" เด เดฒเตเดฒ, เด เดคเต เดเดฐเต "เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด" เดชเตเดฒเตเดฏเดพเดฃเต. เดกเตเดฎเตบ.โ เดเดฐเต เดเตเดฌเตเดฒเตเดฑเตเดฑเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดเตเดฌเตเดฒเตเดฑเตเดฑเต เดจเดฟเตผเดคเตเดคเตเดจเตเดจเดคเต เดตเดฐเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเต เดคเตเดเดฐเตเด.)
เดเดคเดพเดจเตเด เดฎเดฟเดจเดฟเดฑเตเดฑเตเดเตพเดเตเดเตเดณเตเดณเดฟเตฝ 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>
เดชเตเดกเตเดเตพเดเตเดเดฟเดเดฏเดฟเดฒเตเดณเตเดณ เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเตเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเดพเตป, เดจเดฎเตเดเตเดเต เดฎเดฑเตเดฑเตเดฐเต เดชเตเดกเดฟเตฝ เดจเดฟเดจเตเดจเต curl เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเด:
$ 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>
เด เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ เดเตเดดเดฟเดเตเดเตเดเตเดคเตเดคเต เดเดจเตเดคเดพเดฃเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเตเดจเตเดจเตเด เดเดจเตเดคเดพเดฃเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเดคเตเดคเดคเตเดจเตเดจเตเด เดเดพเดฃเตเดจเตเดจเดคเต เดตเดณเดฐเต เดฐเดธเดเดฐเดฎเดพเดฃเต. เดเตเตบเดซเดฟเดเตเดฎเดพเดชเตเดชเตเด เดฐเดนเดธเตเดฏเดตเตเด เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเดคเตเดชเตเดฒเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเตเดจเตเดจเต เดเดพเตป เดเดฃเตเดเตเดคเตเดคเดฟ, เดเดจเตเดจเดพเตฝ เดธเตเดตเดจเดตเตเด เดตเดฟเดจเตเดฏเดพเดธเดตเตเด เดเตเดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ.
เดตเดฟเดเดฏเด!
เด เดชเตเดธเตเดฑเตเดฑเต เดฆเตเตผเดเตเดฏเดฎเตเดฑเดฟเดฏเดคเดพเดฃเต, เด เดคเดฟเดจเดพเตฝ เดเดพเตป เดตเดฟเดเดฏเด เดชเตเดฐเดเตเดฏเดพเดชเดฟเดเตเดเดพเตป เดชเตเดเตเดจเตเดจเต, เดเดคเต "เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต" เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเดพเดตเตเดจเตเดจ เดเดฐเต เดชเตเดฐเดพเดฏเตเดเดฟเด เดเตเตบเดซเดฟเดเดฑเตเดทเดจเดพเดฃเตเดจเตเดจเต เดชเดฑเดฏเดพเตป เดชเตเดเตเดจเตเดจเต. เดเตเดฐเตเดเตเดเดคเตเดคเดฟเตฝ: เดจเดพเดฒเต เดฌเตเดจเดฑเดฟเดเดณเตเด เด เดเตเดเต เดเดฎเดพเตปเดกเต เดฒเตเตป เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเดณเตเด YAML-เดจเตเดฑเต "เดฎเดพเดคเตเดฐเด" 45 เดตเดฐเดฟเดเดณเตเด (เด เดฒเตเดฒ เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเต เดฎเดพเดจเดฆเดฃเตเดกเดฎเดจเตเดธเดฐเดฟเดเตเดเต) เดเดเตเดเตพเดเตเดเต เดเตเดฑเดเตเดเต เดเดพเดฐเตเดฏเดเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเต:
- เดธเดพเดงเดพเดฐเดฃ เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต API เดเดชเดฏเตเดเดฟเดเตเดเดพเดฃเต เดชเตเดกเตเดเตพ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดเตเดเตเดจเตเดจเดคเต (เดเตเดฑเดเตเดเต เดนเดพเดเตเดเตเดเดณเตเดเต)
- เดจเดฟเดเตเดเตพเดเตเดเต เดชเตเดคเต เดเดฃเตเดเตเดฏเตโเดจเตผ เดเดฟเดคเตเดฐเดเตเดเตพ เด เดชเตโเดฒเตเดกเต เดเตเดฏเตเดฏเดพเดจเตเด เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด
- เดชเตเดกเตเดเตพ เดธเดเตเดตเดฎเดพเดฏเดฟ เดคเตเดเดฐเตเดเดฏเตเด เดธเตเดตเดฏเดฎเตเดต เดชเตเดจเดฐเดพเดฐเดเดญเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต
- เดเดฐเต เดจเตเดกเดฟเดจเตเดณเตเดณเดฟเดฒเต เดชเตเดกเตเดเตพ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเดฟเดเดเต เดจเดจเตเดจเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต
- เดเตเตบเดซเดฟเดเตโเดฎเดพเดชเตเดชเต, เดฐเดนเดธเตเดฏเดตเตเด เดฒเดณเดฟเดคเดตเตเดฎเดพเดฏ เดธเตเดฑเตเดฑเตเดฑเตเดเต เดฎเตเดฃเตเดเดฟเดเดเต เดเตเดฒเดฟเดเตพ เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเดคเตเดชเตเดฒเต
เดเดจเตเดจเดพเตฝ เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเดจเต เดถเดฐเดฟเดเตเดเตเด เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดเตเดเตเดจเตเดจ เดชเดฒเดคเตเด เดเดชเตเดชเตเดดเตเด เดเดพเดฃเตเดจเตเดจเดฟเดฒเตเดฒ, เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต:
- เดชเตเดกเต เดทเตเดกเตเดฏเตเดณเตผ
- เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฃเด/เด เดเดเตเดเดพเดฐเด
- เดเดจเตเดจเดฟเดฒเดงเดฟเดเด เดจเตเดกเตเดเตพ
- เดธเตเดตเดจ เดถเตเดเดเดฒ
- เดเตเดฒเดธเตเดฑเตเดฑเตเตผเดกเต เดเดจเตเดฑเตเดฃเตฝ DNS
- เดธเตเดตเดจ เด เดเตเดเตเดฃเตเดเตเดเตพเดเตเดเดพเดฏเตเดณเตเดณ เดเตบเดเตเดฐเตเดณเดฑเตเดเตพ, เดตเดฟเดจเตเดฏเดพเดธเดเตเดเตพ, เดเตเดฒเตเดกเต เดฆเดพเดคเดพเดเตเดเดณเตเดฎเดพเดฏเตเดณเตเดณ เดธเดเดฏเตเดเดจเด, เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเต เดเตเดฃเตเดเตเดตเดฐเตเดจเตเดจ เดฎเดฑเตเดฑเต เดฎเดฟเดเตเด เดเตเดฃเดเตเดเดณเตเด
เด เดชเตเดชเตเตพ เดจเดฎเตเดเตเดเต เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดเดจเตเดคเดพเดฃเต เดฒเดญเดฟเดเตเดเดคเต? เดธเตเดตเดจเตเดคเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต API เดถเดฐเดฟเดเตเดเตเด เดเดฐเต เดชเตเดฒเดพเดฑเตเดฑเตเดซเตเด เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดเดฃเตเดเตเดฏเตเดจเตผ เดเดเตเดเตเดฎเตเดทเตป. เดเดคเต เดเตเดเตเดคเตฝ เดเดจเตเดจเตเด เดเตเดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ - เดเดคเต API เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดตเดฟเดตเดฟเดง เดเตบเดเตเดฐเตเดณเตผเดฎเดพเตผเดเตเดเตเด เดเดชเตเดชเดฑเตเดฑเตเดฑเตผเดฎเดพเตผเดเตเดเตเด เดตเตเดฃเตเดเดฟเดฏเตเดณเตเดณ เดเดฐเต เดเตเดฒเดฟเดฏเดพเดฃเต - เดเดจเตเดจเดพเตฝ เดเดคเต เดเดเตเดเตเดฎเตเดทเดจเดพเดฏเดฟ เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณ เด เดจเตเดคเดฐเตเดเตเดทเด เดจเตฝเดเตเดจเตเดจเต.
เดเตเดเตเดคเดฒเต เดตเดพเดฏเดฟเดเตเดเตเด:
เดเดจเตเดคเตเดเตเดฃเตเดเดพเดฃเต เดธเดฟเดธเตเดฑเตเดฑเด เด เดกเตเดฎเดฟเดจเดฟเดธเตเดเตเดฐเตเดฑเตเดฑเตผเดฎเดพเดฐเตเด เดกเดตเดฒเดชเตเดชเตผเดฎเดพเดฐเตเด เดเตเดธเตเดฑเตเดฑเตผเดฎเดพเดฐเตเด DevOps เดฐเตเดคเดฟเดเตพ เดชเด เดฟเดเตเดเตเดฃเตเดเดคเต? เดคเดพเดจเตเดธเต - เดธเตเดเตเดฒเดฌเดฟเตพ เดชเตเดฐเตเดฎเดฟเดคเตเดฏเตเดธเต GitLab QA เดเตเด เดเดเตเดเดจเตเดฏเดพเดฃเต GitLab เดชเตเตผเดซเตเดฎเตปเดธเต เดเตเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดฒเตเดเตเดเดฟ - เดชเตเดฐเตเดฎเดฟเดคเตเดฏเตเดธเต เดธเดฎเตเดชเดจเด เดเดชเดฏเตเดเดฟเดเตเดเตเดณเตเดณ เดฒเตเดเต เดถเตเดเดฐเดฃเด DevOps-เดจเตเดฑเต เดเตเดตเดฟเดคเดคเตเดคเดฟเดฒเต เดเดฐเต เดฆเดฟเดตเดธเด
เด เดตเดฒเดเดฌเด: www.habr.com