์ค๋ ๋ฐค
์ด ์๋ฃ๋ฅผ ์ค๋นํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ๋ณด๋ ๋ค์์์ ๊ฐ์ ธ์์ต๋๋ค.
SIG ํด๋ฌ์คํฐ ์๋ช
์ฃผ๊ธฐ์ ์ค์ํ ์๊ฐ๋ถํฐ ์์ํด ๋ณด๊ฒ ์ต๋๋ค. ๋์ ์ฅ์ ์กฐ์น ํด๋ฌ์คํฐ Kubernetes(๋๋ ๋ ์ ํํ๊ฒ ๋งํ๋ฉด ์์ฒด ํธ์คํ
HA ๋ฐฐํฌ)๊ฐ ์ด์ kubeadm
(init
ะธ join
). ๊ฐ๋จํ ๋งํด์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํด๋ฌ์คํฐ์์ ์ฌ์ฉํ๋ ์ธ์ฆ์๋ ๋น๋ฐ๋ก ์ ์ก๋ฉ๋๋ค.
- K8s ํด๋ฌ์คํฐ ๋ด๋ถ์์ etcd ํด๋ฌ์คํฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฐ๋ฅ์ฑ(์ฆ, ๊ธฐ์กด ์ธ๋ถ ์ข
์์ฑ ์ ๊ฑฐ)
etcd-์ฐ์ฐ์ ; - ๋ด๊ฒฐํจ์ฑ ๊ตฌ์ฑ์ ์ ๊ณตํ๋ ์ธ๋ถ ๋ก๋ ๋ฐธ๋ฐ์์ ๋ํ ๊ถ์ฅ ์ค์ ์ ๋ฌธ์ํํฉ๋๋ค(ํฅํ์๋ ์ด ์ข ์์ฑ์ ์ ๊ฑฐํ ๊ณํ์ด์ง๋ง ํ ๋จ๊ณ์์๋ ๊ทธ๋ ์ง ์์).
kubeadm์ผ๋ก ์์ฑ๋ Kubernetes HA ํด๋ฌ์คํฐ์ ์ํคํ
์ฒ
๊ตฌํ ์ธ๋ถ์ ๋ณด๋ ๋ค์์์ ํ์ธํ ์ ์์ต๋๋ค.
API
ํ apply
์ผ๋ฐ์ ์ผ๋ก ์ ์ธ์ ๊ฐ์ฒด ๊ด๋ฆฌ kubectl
apiserver์์. ๊ฐ๋ฐ์๋ค์ ์์ ์ ๊ฒฐ์ ์ ๋ค์๊ณผ ๊ฐ์ด ๊ฐ๋ตํ๊ฒ ์ค๋ช
ํฉ๋๋ค. kubectl apply
- Kubernetes ๊ตฌ์ฑ ์์
์ ๊ธฐ๋ณธ ๋ถ๋ถ์ด์ง๋ง "๋ฒ๊ทธ๊ฐ ๊ฐ๋ํ๊ณ ์์ ํ๊ธฐ ์ด๋ ต์ต๋๋ค." ๋ฐ๋ผ์ ์ด ๊ธฐ๋ฅ์ ๋ค์ ์ ์์ผ๋ก ๊ฐ์ ธ์ ์ ์ด ํ๋ ์ธ์ผ๋ก ์ ์กํด์ผ ํฉ๋๋ค. ์ค๋๋ ์กด์ฌํ๋ ๋ฌธ์ ์ ๊ฐ๋จํ๊ณ ๋ช
ํํ ์:
๊ตฌํ์ ๋ํ ์์ธํ ๋ด์ฉ์
์ํ ๋ฒ์ ์์ ์ฌ์ฉ ๊ฐ๋ฅ kubectl
) ๊ทํ ์ธก์์ ๊ฒ์ฆ์ ์ํํฉ๋๋ค. kubectl create
ะธ kubectl apply
) ๊ณํ์ ๋ฐ๋ผ ๋ฌธ์๋ฅผ ๋ฐํํ๊ณ (kubectl explain
). ์ธ๋ถ์ ๋ณด - ์์
๊ธฐ์กด ๋ก๊ทธ O_APPEND
(์๋ O_TRUNC
) ์ผ๋ถ ์ํฉ์์ ๋ก๊ทธ ์์ค์ ๋ฐฉ์งํ๊ณ ํ์ ์ ์ํ ์ธ๋ถ ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๊ทธ๋ฅผ ์๋ฅด๋ ํธ์๋ฅผ ์ํด.
๋ํ Kubernetes API์ ๋งฅ๋ฝ์์ ๋ค์๊ณผ ๊ฐ์ ์ฌ์ค์ ์ ์ ์์ต๋๋ค. PodSandbox
ะธ PodSandboxStatus
runtime_handler
์ ๊ดํ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ๊ธฐ ์ํด RuntimeClass
ํฌ๋์์(์์ธํ ๋ด์ฉ์ ํ
์คํธ์์ ์ฝ์ด๋ณด์ธ์. AdmissionReview
๊ทธ๋ค์ ์ง์ํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก, ์
ํ ์นํ
๊ท์น์ ์ด์
๊ธ๊ณ
PersistentLocalVolumes
subPath
subPathExpr
, ์ด์ ์ํ๋ ๋๋ ํฐ๋ฆฌ ์ด๋ฆ์ ๊ฒฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ฒ์์ Kubernetes 1.11์ ๋ฑ์ฅํ์ง๋ง 1.14์์๋ ์ํ ๋ฒ์ ์ํ๋ก ์ ์ง๋์์ต๋๋ค.
์ด์ Kubernetes ๋ฆด๋ฆฌ์ค์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ๊ทน์ ์ผ๋ก ๊ฐ๋ฐ ์ค์ธ CSI(์ปจํ ์ด๋ ์คํ ๋ฆฌ์ง ์ธํฐํ์ด์ค)์ ๋ง์ ์ค์ํ ๋ณ๊ฒฝ ์ฌํญ์ด ๋์ ๋์์ต๋๋ค.
CSI
์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ๋จ(์ํ ๋ฒ์ ์ ์ผ๋ถ๋ก) ExpandCSIVolumes
, ํน์ CSI ๋๋ผ์ด๋ฒ์์ ์ด ์์
์ ๋ํ ์ง์ ๊ฐ์ฉ์ฑ๋ ํ์ธํ ์ ์์ต๋๋ค.
์ํ ๋ฒ์ ์ CSI์ ๋ ๋ค๋ฅธ ๊ธฐ๋ฅ - CSIInlineVolume
๊ธฐ๋ฅ ๊ฒ์ดํธ.
CSI์ ๊ด๋ จ๋ Kubernetes์ "๋ด๋ถ"์๋ ์ง์ ์ด ์์๋๋ฐ, ์ด๋ ์ต์ข
์ฌ์ฉ์(์์คํ
๊ด๋ฆฌ์)์๊ฒ ์ ๋ณด์ด์ง ์์ต๋๋ค. ํ์ฌ ๊ฐ๋ฐ์๋ ๊ฐ ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ ๋ ๊ฐ์ง ๋ฒ์ ์ ์ง์ํด์ผ ํฉ๋๋ค. ์ด์ ๋ฐฉ์โ, K8s ์ฝ๋๋ฒ ์ด์ค ๋ด๋ถ(-tree) ๋ฐ ๋ ๋ฒ์งธ - ์๋ก์ด CSI์ ์ผ๋ถ (์์ธํ ๋ด์ฉ์ ์๋ฅผ ๋ค์ด
์ด ๋ชจ๋ ๊ฒ์ด ์ํ ๋ฒ์ ์ ๋๋ฌํ๋ค๋ ์ฌ์ค๋ก ์ด์ด์ก์ต๋๋ค.
๋ํ CSI๊ฐ ํฌํจ๋ ๋ธ๋ก ์ฅ์น์ ๋ํ ์ง์(CSIBlockVolume
)
๋ ธ๋/Kubelet
์ํ ๋ฒ์ ์ ๊ณต /metrics/resource/v1alpha1
. ๊ฐ๋ฐ์์ ์ฅ๊ธฐ ์ ๋ต
๋งค์ฐ ํฅ๋ฏธ๋ก์ด ๋์์ค: Prometheus ํ์์ ์ฌ์ฉํ๋ ๋ค์ํ ์ฌ๋ก์ ๋น๊ตํ์ฌ gRPC ์๋ํฌ์ธํธ์ ๋ถ๋ช ํ ์ฑ๋ฅ ์ด์ ์๋ ๋ถ๊ตฌํ๊ณ (์๋ ๋ฒค์น๋งํฌ ์ค ํ๋์ ๊ฒฐ๊ณผ ์ฐธ์กฐ), ์ ์๋ ์ปค๋ฎค๋ํฐ์์ ์ด ๋ชจ๋ํฐ๋ง ์์คํ ์ ๋ช ํํ ๋ฆฌ๋์ญ์ผ๋ก ์ธํด Prometheus์ ํ ์คํธ ํ์์ ์ ํธํ์ต๋๋ค.
โgRPC๋ ์ฃผ์ ๋ชจ๋ํฐ๋ง ํ์ดํ๋ผ์ธ๊ณผ ํธํ๋์ง ์์ต๋๋ค. ์๋ํฌ์ธํธ๋ Metrics Server์ ๋ฉํธ๋ฆญ์ ์ ๋ฌํ๊ฑฐ๋ ์ด์ ์ง์ ํตํฉ๋๋ ๊ตฌ์ฑ ์์๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๋ฐ์๋ง ์ ์ฉํฉ๋๋ค. Metrics Server์์ ์บ์ฑ์ ์ฌ์ฉํ ๋ Prometheus ํ ์คํธ ํ์ ์ฑ๋ฅ ์ถฉ๋ถํ๋ค ์ปค๋ฎค๋ํฐ์์ Prometheus๊ฐ ๋๋ฆฌ ์ฑํ๋ ์ ์ ๊ณ ๋ คํ๋ฉด gRPC๋ณด๋ค Prometheus๋ฅผ ์ ํธํฉ๋๋ค. OpenMetrics ํ์์ด ๋์ฑ ์์ ๋๋ฉด ํ๋กํ ๊ธฐ๋ฐ ํ์์ผ๋ก gRPC ์ฑ๋ฅ์ ์ ๊ทผํ ์ ์์ ๊ฒ์ ๋๋ค."
๋ฉํธ๋ฆญ์ ์ํ ์๋ก์ด Kubelet ์๋ํฌ์ธํธ์์ gRPC ๋ฐ Prometheus ํ์์ ์ฌ์ฉํ๋ ๋น๊ต ์ฑ๋ฅ ํ
์คํธ ์ค ํ๋์
๋๋ค. ๋ ๋ง์ ๊ทธ๋ํ์ ๊ธฐํ ์ธ๋ถ์ ๋ณด๋ ๋ค์์์ ํ์ธํ ์ ์์ต๋๋ค.
๊ธฐํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Kubelet ์ง๊ธ(XNUMXํ)
๋ฉ์ถ๋ ค๊ณ ๋ ธ๋ ฅ ์ค ๋ค์ ์์ ๋ฐ ์ญ์ ์์ ์ ์๋ ์ ์ ์๋ ์ํ์ ์ปจํ ์ด๋์ ๋๋ค. - ๋ฅผ ์ฌ์ฉํ ๋
์ด์ ์ด๊ธฐํ ์ปจํ ์ด๋๋กPodPresets
์ถ๊ฐ๋์์ต๋๋ค ์ผ๋ฐ ์ปจํ ์ด๋์ ๋์ผํ ์ ๋ณด์ ๋๋ค. - ์ฟ ๋ฒจ๋
์ฌ์ฉํ๊ธฐ ์์ํ์ต๋๋ค usageNanoCores
CRI ํต๊ณ ์ ๊ณต์ ๋ฐ Windows์ ๋ ธ๋ ๋ฐ ์ปจํ ์ด๋์ถ๊ฐ ๋คํธ์ํฌ ํต๊ณ. - ์ด์ ์ด์ ์ฒด์ ๋ฐ ์ํคํ
์ฒ ์ ๋ณด๊ฐ ๋ ์ด๋ธ์ ๊ธฐ๋ก๋ฉ๋๋ค.
kubernetes.io/os
ะธkubernetes.io/arch
๋ ธ๋ ๊ฐ์ฒด(๋ฒ ํ์์ GA๋ก ์ ์ก๋จ) - ํฌ๋์ ์ปจํ
์ด๋์ ๋ํด ํน์ ์์คํ
์ฌ์ฉ์ ๊ทธ๋ฃน์ ์ง์ ํ๋ ๊ธฐ๋ฅ(
RunAsGroup
, ์ ๋ํ๋ฌ๋คK8s 1.11 )๊ณ ๊ธ์ ๋ฒ ํ ์ด์ (๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋จ) - du ๋ฐ find๋ cAdvisor์์ ์ฌ์ฉ๋ฉ๋๋ค.
~๋ก ๊ต์ฒด๋๋ค ์ด๋ ์ค ๊ตฌํ.
CLI
cli-runtime ๋ฐ kubectl์์
๋จ์ ํ์ผ ์ฌ์ฉ ์์
๋ํ :
-
์ถ๊ฐ๋จ ์๋ก์ด ํkubectl create cronjob
, ๊ทธ ์ด๋ฆ ์์ฒด๊ฐ ๋งํด์ค๋๋ค. - ะ
kubectl logs
์ด์ ๋๋ ํ ์์์ด.๊ฒฐํฉ์ํค๋ค ๊น๋ฐ-f
(--follow
๋ก๊ทธ ์คํธ๋ฆฌ๋ฐ์ ๊ฒฝ์ฐ) ๋ฐ-l
(--selector
๋ผ๋ฒจ ์ฟผ๋ฆฌ์ ๊ฒฝ์ฐ). - ์ฟ ๋ฒ ํ
์ง๋ ๋ฐ์ ์์ผ๋์นด๋๋ก ์ ํํ ํ์ผ์ ๋ณต์ฌํฉ๋๋ค. - ํ์๊ฒ
kubectl wait
์ถ๊ฐ ํ๋๊ทธ--all
์ง์ ๋ ๋ฆฌ์์ค ์ ํ์ ๋ค์์คํ์ด์ค์ ์๋ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ์ ํํฉ๋๋ค.
๊ธฐํ
๋ค์ ๊ธฐ๋ฅ์ ์์ (GA) ์ํ๋ฅผ ๋ฐ์์ต๋๋ค.
-
, ํฌ๋ ์ฌ์์์ ํฌ๋ ์ค๋น ์ํ์์ ๊ณ ๋ ค๋๋ ์ถ๊ฐ ์กฐ๊ฑด์ ์ ์ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.ReadinessGate
- ๋ํ ํ์ด์ง ์ง์(๊ธฐ๋ฅ ๊ฒ์ดํธ๋ผ๊ณ ํจ)
);HugePages
-
์ปค์คํ ํDNS ; - ์ฐ์ ์์ํด๋์ค API,
ํฌ๋ ์ฐ์ ์์ ๋ฐ ์ ์ .
Kubernetes 1.14์ ๋์ ๋ ๊ธฐํ ๋ณ๊ฒฝ ์ฌํญ:
- ๊ธฐ๋ณธ RBAC ์ ์ฑ
์ ๋ ์ด์ API ์ก์ธ์ค๋ฅผ ํ์ฉํ์ง ์์ต๋๋ค.
discovery
ะธaccess-review
์ธ์ฆ๋์ง ์์ ์ฌ์ฉ์ (์ธ์ฆ๋์ง ์์). - ๊ณต์ CoreDNS ์ง์
์ ์ํด ์ ๊ณต Linux ์ ์ฉ์ด๋ฏ๋ก kubeadm์ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ์ ๋ฐฐํฌ(CoreDNS)ํ ๋ ๋ ธ๋๋ Linux์์๋ง ์คํ๋์ด์ผ ํฉ๋๋ค(์ด ์ ํ ์ฌํญ์๋ nodeSelector๊ฐ ์ฌ์ฉ๋ฉ๋๋ค). - ๊ธฐ๋ณธ CoreDNS ๊ตฌ์ฑ์ ์ด์
ะธัะฟะพะปัะทัะตั ํฌ์๋ ํ๋ฌ๊ทธ์ธ ํ๋ก์ ๋์ . ๋ํ CoreDNS์์๋์ถ๊ฐ ์ ์ ํ(์๋น์ค ์ค๋น๊ฐ ์ ๋) ํฌ๋์์ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ๋ฐฉ์งํ๋ readinessProbe. - kubeadm์์๋ ๋จ๊ณ์ ์ผ๋ก
init
๋๋upload-certs
,๊ฐ๋ฅํด์ก๋ค ์๋ก์ด ์ ์ด ํ๋ฉด์ kubeadm-certs ๋น๋ฐ์ ์ฐ๊ฒฐํ๋ ๋ฐ ํ์ํ ์ธ์ฆ์๋ฅผ ๋ก๋ํฉ๋๋ค(ํ๋๊ทธ ์ฌ์ฉ--experimental-upload-certs
). - Windows ์ค์น์ฉ ์ํ ๋ฒ์ ์ด ๋ํ๋ฌ์ต๋๋ค.
์ง์ง gMSA(๊ทธ๋ฃน ๊ด๋ฆฌ ์๋น์ค ๊ณ์ ) - ์ปจํ ์ด๋์์๋ ์ฌ์ฉํ ์ ์๋ Active Directory์ ํน์ ๊ณ์ ์ ๋๋ค. - G.C.E์ ๊ฒฝ์ฐ
ํ์ฑํ etcd์ kube-apiserver ๊ฐ์ mTLS ์ํธํ. - ์ฌ์ฉ/์ข ์ ์ํํธ์จ์ด ์ ๋ฐ์ดํธ: Go 1.12.1, CSI 1.1, CoreDNS 1.3.1, kubeadm์ Docker 18.09 ์ง์ ๋ฐ ์ง์๋๋ ์ต์ Docker API ๋ฒ์ ์ ์ด์ 1.26์ ๋๋ค.
PS
๋ธ๋ก๊ทธ์์๋ ์ฝ์ด๋ณด์ธ์.
- ยซ
Kubernetes 1.13: ์ฃผ์ ํ์ ๊ฐ์ "; - ยซ
Kubernetes 1.12: ์ฃผ์ ํ์ ๊ฐ์ "; - ยซ
Kubernetes 1.11: ์ฃผ์ ํ์ ๊ฐ์ "; - ยซ
Kubernetes 1.10: ์ฃผ์ ํ์ ๊ฐ์ ".
์ถ์ฒ : habr.com