์ด์ , 9์ XNUMX์ผ
์ด ์๋ฃ๋ฅผ ์ค๋นํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ๋ณด๋ ๊ณต์ ๋ฐํ์์ ๊ฐ์ ธ์์ต๋๋ค.
ํ ํด๋ก์ง ์ธ์ ๋ผ์ฐํ
Kubernetes ์ปค๋ฎค๋ํฐ๋ ์ค๋ซ๋์ ์ด ๊ธฐ๋ฅ์ ๊ธฐ๋ค๋ ค์์ต๋๋ค. ํ ํด๋ก์ง ์ธ์ ์๋น์ค ๋ผ์ฐํ
. ๋ง์ฝ
์ผ๋ฐ์ ์ธ ์์ด๋์ด๋ Kubernetes์ ์๋ ์๋น์ค์ ๋ํด "๋ก์ปฌ" ๋ผ์ฐํ ์ ๊ตฌํํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. ์ด ๊ฒฝ์ฐ "์ง์ญ์ฑ"์ "๋์ผํ ํ ํด๋ก์ง ์์ค"์ ์๋ฏธํฉ๋๋ค. (ํ ํด๋ก์ง ์์ค), ์ด๋ ๋ค์๊ณผ ๊ฐ์ ์ ์์ต๋๋ค:
- ์๋น์ค์ ๋ํด ๋์ผํ ๋ ธ๋,
- ๋์ผํ ์๋ฒ ๋,
- ๊ฐ์ ์ง์ญ
- ๋์ผํ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด,
- ...
์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ์:
- ์ฌ๋ฌ ๊ฐ์ฉ์ฑ ์์ญ(๋ค์ค AZ)์ด ์๋ ํด๋ผ์ฐ๋ ์ค์น์ ํธ๋ํฝ ์ ๊ฐ - ์ฐธ์กฐ.
์ ์ ํ ๊ทธ๋ฆผ ๋์ผํ ์ง์ญ์ด์ง๋ง AWS์ ๋ค๋ฅธ AZ์์ ๋ฐ์ํ๋ ํธ๋ํฝ์ ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. - ๋ ๋ฎ์ ์ฑ๋ฅ ๋๊ธฐ ์๊ฐ/๋ ๋์ ์ฒ๋ฆฌ๋;
- ๊ฐ ์ค๋์ ๋ ธ๋์ ๋ํ ๋ก์ปฌ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ค๋ ์๋น์ค
- ๋ก๊ทธ๊ฐ ์์ง๋๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋์ผํ ๋ ธ๋์ fluentd(๋๋ ์ ์ฌํ) ๋ฐฐ์น
- ...
ํ ํด๋ก์ง์ ๋ํด "์๊ณ ์๋" ์ด๋ฌํ ๋ผ์ฐํ
์ ๋คํธ์ํฌ ์ ํธ๋๋ผ๊ณ ๋ ํฉ๋๋ค. ServiceTopology
Kubernetes - ์ํ ๋ฒ์ .
๊ธฐ๋ฅ์ ์๋ ๋ฐฉ์๊ณผ ์ด๋ฏธ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค์์ ์ฝ์ด๋ณด์ธ์.
IPv4/IPv6 ๋์ผ ์คํ ์ง์
์๋นํ ์ง์
- ํ๋ธ ํ๋ก์์์
๊ตฌํ ๋ ๋ชจ๋(IPv4 ๋ฐ IPv6)์์ ๋์ ์๋ ๊ฐ๋ฅ์ฑ; - ะฒ
Pod.Status.PodIPs
์ถ์ฐ ํ ํํฅ API ์ง์(๋์์/etc/hosts
์ด์ ๋ ํธ์คํธ๊ฐ IPv6 ์ฃผ์๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค. - ๋์ผ ์คํ ์ง์
์ข ๋ฅ (Kubernetes IN Docker) ๋ฐkubeadm ; - e2e ํ ์คํธ๋ฅผ ์ ๋ฐ์ดํธํ์ต๋๋ค.
CSI ์งํ ์ํฉ
์์ ์ ์ด๋ผ๊ณ ์ ์ธ๋จ
์ด๋์
ํฐ๋ธ ๋ณผ๋ฅจ ํ๋ฌ๊ทธ์ธ์ CSI๋ก ๋ง์ด๊ทธ๋ ์ด์
-
ํ์ฌ AWS EBS ๋๋ผ์ด๋ฒ์ ๋ํ ๋ง์ด๊ทธ๋ ์ด์
์ ๋ฒ ํ ๋ฒ์ (kubernetes.io/aws-ebs
) ๋ฐ GCE PD(kubernetes.io/gce-pd
). ๊ธฐํ ์ ์ฅ์์ค์ ๋ํ ์ ๋ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฐ๋ฆฌ๋ K8์ "์ ํต์ ์ธ" ์คํ ๋ฆฌ์ง ์ง์์ด CSI์ ์ด๋ป๊ฒ ๋์
๋์๋์ง์ ๋ํด ์ด์ผ๊ธฐํ์ต๋๋ค.
๋ํ K1.17s 8์์ ์์๋(์ํ ๊ตฌํ) CSI ๋งฅ๋ฝ์ ๋ ๋ค๋ฅธ ์ค์ํ ๊ธฐ๋ฅ์ Kubernetes 1.12 ๋ฆด๋ฆฌ์ค์์ ๋ฒ ํ ์ํ(์ฆ, ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋จ)์ ๋๋ฌํ์ต๋๋ค.
- CSI ์ธ๋ถ ์ค๋ ์ท ์ฌ์ด๋์นด๋ฅผ ๋ ๊ฐ์ ์ปจํธ๋กค๋ฌ๋ก ๋ถํ
- ์ญ์ ๋ฅผ ์ํด ๋น๋ฐ๋ฒํธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค (์ญ์ ๋น๋ฐ) ๋ณผ๋ฅจ ์ค๋ ์ท์ ๋ด์ฉ์ ๋ํ ์ฃผ์์ผ๋ก,
- ์๋ก์ด ์ข ๋ฃ์ (์ข ๋ฃ์) ์ฐ๊ฒฐ์ด ๋จ์ ์๋ ๊ฒฝ์ฐ ์ค๋ ์ท API ๊ฐ์ฒด๊ฐ ์ญ์ ๋๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
๋ฆด๋ฆฌ์ค 1.17 ์์ ์์ ์ด ๊ธฐ๋ฅ์ ์ธ ๊ฐ์ง CSI ๋๋ผ์ด๋ฒ(GCE ์๊ตฌ ๋์คํฌ CSI ๋๋ผ์ด๋ฒ, Portworx CSI ๋๋ผ์ด๋ฒ ๋ฐ NetApp Trident CSI ๋๋ผ์ด๋ฒ)์์ ์ง์๋ฉ๋๋ค. ๊ตฌํ ๋ฐ ์ฌ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค์์์ ํ์ธํ ์ ์์ต๋๋ค.
ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด ๋ผ๋ฒจ
์๋์ผ๋ก ๋ผ๋ฒจ์ด ์ง์ ๋ฉ๋๋ค. ์ฌ์ฉ๋ ํด๋ผ์ฐ๋ ๊ณต๊ธ์์ ๋ฐ๋ผ ์์ฑ๋ ๋
ธ๋ ๋ฐ ๋ณผ๋ฅจ์ ํ ๋น๋จ, K8s 1.2 ์ถ์ ์ดํ ์ค๋ซ๋์ Kubernetes์์ ๋ฒ ํ ๋ฒ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ์ต๋๋ค. (2016๋
XNUMX์!). ์ค๋ซ๋์ ๋๋ฆฌ ์ฌ์ฉ๋์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๋
๋ฐ๋ผ์ ๋ชจ๋ ๊ทธ์ ๋ฐ๋ผ(ํ ํด๋ก์ง์ ๋ฐ๋ผ) ์ด๋ฆ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค.
-
beta.kubernetes.io/instance-type
โnode.kubernetes.io/instance-type
-
failure-domain.beta.kubernetes.io/zone
โtopology.kubernetes.io/zone
-
failure-domain.beta.kubernetes.io/region
โtopology.kubernetes.io/region
...ํ์ง๋ง ์ด์ ์ด๋ฆ์ผ๋ก ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๋ค(์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ํด). ๊ทธ๋ฌ๋ ๋ชจ๋ ๊ด๋ฆฌ์๋ ํ์ฌ ๋ ์ด๋ธ๋ก ์ ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
kubeadm์ ๊ตฌ์กฐํ๋ ์ถ๋ ฅ
์ฒ์์ผ๋ก ์ํ ๋ฒ์ ์ผ๋ก ์ ๋ณด์์ต๋๋ค.
์ด ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ค๋ ๋๊ธฐ(์ ๋ฐ๋ฆ)
Kubernetes๋ฅผ ์๋์ผ๋ก ๋ฐฐํฌํ ์ ์์ง๋ง ์ด ์์ ์ ๋ํ ์ฌ์ค์์(๋ฒ๋ฅ ์ ์ด์ง๋ ์๋๋ผ๋) ํ์ค์ kubeadm์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. Terraform๊ณผ ๊ฐ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์์คํ ๊ด๋ฆฌ ๋๊ตฌ๋ Kubernetes ๋ฐฐํฌ๋ฅผ ์ํด kubeadm์ ์ฌ์ฉํฉ๋๋ค. ํด๋ฌ์คํฐ API์ ๋ํ ๊ณํ๋ ๊ฐ์ ์๋ kubeadm ๋ฐ cloud-init๋ฅผ ์ฌ์ฉํ Kubernetes ๋ถํธ์คํธ๋ํ์ ์ํ ๊ตฌ์ฑ ๊ฐ๋ฅํ ํจํค์ง๊ฐ ํฌํจ๋ฉ๋๋ค.
๊ตฌ์กฐํ๋ ์ถ๋ ฅ์ด ์์ผ๋ฉด ์ธ๋ป ๋ณด๊ธฐ์ ๊ฐ์ฅ ๋ฌดํดํ ๋ณ๊ฒฝ์ด๋ผ๋ Terraform, Cluster API ๋ฐ kubeadm์ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉํ๋ ๊ธฐํ ์ํํธ์จ์ด๋ฅผ ์์์ํฌ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ์ ์ฆ๊ฐ์ ์ธ ๊ณํ์๋ ๋ค์ kubeadm ๋ช ๋ น์ ๋ํ ์ง์(๊ตฌ์กฐํ๋ ์ถ๋ ฅ ํ์)์ด ํฌํจ๋ฉ๋๋ค.
-
alpha certs
-
config images list
-
init
-
token create
-
token list
-
upgrade plan
-
version
๋ช
๋ น์ ๋ํ JSON ์๋ต์ ๊ทธ๋ฆผ kubeadm init -o json
:
{
"node0": "192.168.20.51:443",
"caCrt": "sha256:1f40ff4bd1b854fb4a5cf5d2f38267a5ce5f89e34d34b0f62bf335d74eef91a3",
"token": {
"id": "5ndzuu.ngie1sxkgielfpb1",
"ttl": "23h",
"expires": "2019-05-08T18:58:07Z",
"usages": [
"authentication",
"signing"
],
"description": "The default bootstrap token generated by 'kubeadm init'.",
"extraGroups": [
"system:bootstrappers:kubeadm:default-node-token"
]
},
"raw": "Rm9yIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRoZSAia3ViZWFkbSBpbml0IiBjb21tYW5kLCBwbGVhc2Ugc2VlIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2FrdXR6LzdhNjg2ZGU1N2JmNDMzZjkyZjcxYjZmYjc3ZDRkOWJhI2ZpbGUta3ViZWFkbS1pbml0LW91dHB1dC1sb2c="
}
๊ธฐํ ํ์ ์ ์์ ํ
์ผ๋ฐ์ ์ผ๋ก Kubernetes 1.17์ ์ถ์๋ "์์ ์ฑ" ์ด๋ ๊ทธ ์์ ๋ง์ ๊ธฐ๋ฅ์ด ์๋ค๋ ์ฌ์ค๋ก ์ธํด ์ด์ง๋์์ต๋๋ค (์ด ๊ฐ์๋ 14) GA ์ํ๋ฅผ ๋ฐ์์ต๋๋ค. ๊ทธ ์ค์๋:
- ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋
ธ๋๋ฅผ "๋งํน"ํฉ๋๋ค(
), ์ ๋ํ๋ฌ๋คTaintNodesByCondition
K8s 1.8 ; -
๋ถ๋งํฌ ๋ณด๊ธฐ - ๋ชจ๋ ๊ฐ์ฒด๊ฐ ํน์ ๋ฒ์ ์ ํด๋นํ๋ค๋ ๋ผ๋ฒจ์ด ๋ถ์ ์๋ก์ด ์ ํ์ ์ด๋ฒคํธ(resourceVersion
) ์ด๋ฏธ ์๊ณ์ ์ํด ์ฒ๋ฆฌ๋์์ต๋๋ค. -
๊ธฐ๋ณธ๊ฐ (๊ธฐ๋ณธ๊ฐ) ์ฌ์ฉ์ ์ ์ ๋ฆฌ์์ค์ ๊ฒฝ์ฐ; -
์ปจํ ์ด๋ ๊ฐ์ ๊ณต์ ๋จ ํฌ๋ ํ๋ก์ธ์ค ๋ค์์คํ์ด์ค์์; -
ScheduleDaemonSetPods
-DaemonSet์์ ํฌ๋ ๊ณํ kube-scheduler ์ฌ์ฉ(DaemonSet ์ปจํธ๋กค๋ฌ ๋์ ) -
๋์ ํ๊ณ ๋ ธ๋ ์ ํ์ ๋ฐ๋ฅธ ๋ณผ๋ฅจ ์ -
ํ๊ฒฝ ๋ณ์ ์ง์ ๋ค์์ผ๋ก ๋ง์ดํธ๋ ๋๋ ํ ๋ฆฌ ์ด๋ฆ์ ๊ฒฝ์ฐsubPath
; -
Kubelet ํํธ๋นํธ ์ ์ก ์ ๋ฌธํ๋ Lease API๋ก; - "์ข
๋ฃ์ ๋ณดํธ"(
์ข ๋ฃ์ ๋ณดํธ ) ๋ก๋ ๋ฐธ๋ฐ์์ ๊ฒฝ์ฐ(LoadBalancer ๋ฆฌ์์ค๋ฅผ ์ญ์ ํ๊ธฐ ์ ์ ํด๋น ์๋น์ค ๋ฆฌ์์ค ํ์ธ) -
kube-apiserver ์ต์ ํ ๋์ผํ ๊ฐ์ฒด ์งํฉ์ ๋ชจ๋ํฐ๋งํ๋ ์ฌ๋ฌ ์๊ณ๋ก ์์ ํ ๋ ์ฑ๋ฅ ํฅ์ - ๊ฐ ๊ด์ฐฐ์์ ๋ํด ๋์ผํ ๊ฐ์ฒด์ ๋ฐ๋ณต์ ์ธ ์ง๋ ฌํ๋ฅผ ํผํจ์ผ๋ก์จ ๋ฌ์ฑ๋ฉ๋๋ค.
๊ธฐํ ๋ณ๊ฒฝ ์ฌํญ
๋ฌผ๋ก Kubernetes 1.17์ ์ ์ฒด ํ์ ๋ชฉ๋ก์ ์์ ๋์ด๋ ํญ๋ชฉ์๋ง ๊ตญํ๋์ง ์์ต๋๋ค. ๋ค์์ ๊ธฐํ ์ฌํญ์
๋๋ค(๋ ์์ ํ ๋ชฉ๋ก์ ๋ค์์ ์ฐธ์กฐํ์ธ์).
- ๋ง์ง๋ง ๋ฆด๋ฆฌ์ค์ ์ ์๋ ๊ธฐ๋ฅ์ด ๋ฒ ํ ๋ฒ์ ์ ๋๋ฌํ์ต๋๋ค.
;RunAsUserName
์๋์ฐ์ฉ - ๋น์ทํ ๋ณํ
๋ฅ์น๋ค EndpointSlice API(๋ํ K8s 1.16๋ถํฐ). ๊ทธ๋ฌ๋ ํ์ฌ๋ก์๋ Endpoint API์ ์ฑ๋ฅ/ํ์ฅ์ฑ์ ๊ฐ์ ํ๋ ์ด ์๋ฃจ์ ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์ง ์์ต๋๋ค. - ํฌ๋๋ ์ด์ ํด๋ฌ์คํฐ ์ด์์ ์ค์ํฉ๋๋ค.
์์ฑ๋ ์ ์๋ค ๋ค์์คํ์ด์ค๋ฟ๋ง ์๋๋ผkube-system
(์์ธํ ๋ด์ฉ์ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ธ์.์ฐ์ ์์ ํด๋์ค ์๋น ์ ํ ); - kubelet์ ์๋ก์ด ์ต์
-
โ ์์คํ ์ ์์ฝ๋ CPU ๋ชฉ๋ก์ ๋ช ์์ ์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค.--reserved-cpus
- ์
kubectl logs
์ ์๋ ์ ๊น๋ฐ--prefix
, ๋ก๊ทธ์ ๊ฐ ์ค์ Pod ๋ฐ ์์ค ์ปจํ ์ด๋์ ์ด๋ฆ์ ์ถ๊ฐํฉ๋๋ค. - ะฒ
label.Selector
์ถ๊ฐ RequiresExactMatch
; - kube-dns์ ๋ชจ๋ ์ปจํ
์ด๋
์ง๊ธ ๋ฌ๋ฆฌ๊ณ ์์ด์ ๋ ์ ์ ๊ถํ์ผ๋ก; -
ํ์ดํผํ๋ธ ๋ณ๋์ GitHub ์ ์ฅ์๋ก ๋ถ๋ฆฌ๋์ด ๋ ์ด์ Kubernetes ๋ฆด๋ฆฌ์ค์ ํฌํจ๋์ง ์์ต๋๋ค. - ๋ง์
ํฅ์๋ ์ฑ๋ฅ ๋น UDP ํฌํธ์ฉ kube-proxy.
์ข ์์ฑ ๋ณ๊ฒฝ:
- kubeadm์ ํฌํจ๋ CoreDNS ๋ฒ์ ์ 1.6.5์ ๋๋ค.
- crictl ๋ฒ์ ์ด v1.16.1๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
- CSI 1.2.0;
- etcd 3.4.3;
- ํ ์คํธ๋ ์ต์ Docker ๋ฒ์ ์ด 19.03์ผ๋ก ์ ๊ทธ๋ ์ด๋๋์์ต๋๋ค.
- Kubernetes 1.17์ ๋น๋ํ๋ ๋ฐ ํ์ํ ์ต์ Go ๋ฒ์ ์ 1.13.4์ ๋๋ค.
PS
๋ธ๋ก๊ทธ์์๋ ์ฝ์ด๋ณด์ธ์.
- ยซ
Kubernetes 1.16: ์ฃผ์ ํ์ ๊ฐ์ "; - ยซ
Kubernetes 1.15: ์ฃผ์ ํ์ ๊ฐ์ "; - ยซ
Kubernetes 1.14: ์ฃผ์ ํ์ ๊ฐ์ "; - ยซ
Kubernetes 1.13: ์ฃผ์ ํ์ ๊ฐ์ ".
์ถ์ฒ : habr.com