๐ CKA 3์ผ์ฐจ
๐ Udemy-Certified Kubernetes Administrator (CKA) with Practice Tests 28-35
์ฟ ๋ฒ๋คํฐ์ค์ ๋๋๋ ์ปจํธ๋กค๋ฌ์ด๋ค.
์ปจํธ๋กค๋ฌ๋ฅผ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ๊ทธ์ ๋ฐ๋ผ ๋ฐ์ํ๋ ํ๋ก์ธ์ค์ด๋ค.
๋ณต์ ์ปจํธ๋กค๋ฌ๋ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์ ์๋ ๋จ์ผ ํ๋์ ๋ค์ค ์ธ์คํด์ค๋ฅผ ์คํํ๋๋ก ๋์์ค๋ค.
๋ณต์ ์ปจํธ๋กค๋ฌ๋ ๊ณ ๊ฐ์ฉ์ฑ(high availability)์ ์ ๊ณตํ๋ค.
ํ๋๊ฐ ํ๋๋ฟ์ด์ด๋ ๋ณต์ ์ปจํธ๋กค๋ฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๋ณต์ ์ปจํธ๋กค๋ฌ๋ ๊ธฐ์กด์ ํ๋๊ฐ ๊ณ ์ฅ ๋ฌ์ ๋ ์๋์ผ๋ก ์ ํ๋๋ฅผ ๋ถ๋ฌ์จ๋ค.
๋ฐ๋ผ์ ๋ณต์ ์ปจํธ๋กค๋ฌ๋ ํน์ ํ๋๊ฐ ํญ์ ์คํ๋๋๋ก ๋ณด์ฅํ๋ค.
๋ณต์ ์ปจํธ๋กค๋ฌ๊ฐ ํ์ํ ๋ ๋ค๋ฅธ ์ด์ ๋ ๋ก๋๋ฐธ๋ฐ์ฑ ๋๋ฌธ์ด๋ค.
์ฌ์ฉ์ ์๊ฐ ์ฆ๊ฐํ๋ฉด ํ๋๋ฅผ ํ๋ ๋ ์ค์นํด ๋ ๋ถ๋ถ์ ํ์ค์ ๊ท ํ์ก๋๋ค.
๋ณต์ ์ปจํธ๋กค๋ฌ๋ ์ฌ๋ฌ ๋
ธ๋๋ก ๋ป์ด ์์ด์ ์๋ก ๋ค๋ฅธ ๋
ธ๋์ ์ฌ๋ฌ ํ๋์ ๊ฑธ์ณ ๋ถํ๋ฅผ ๋ถ์ฐํ๋๋ฐ ๋์์ด ๋๊ณ ์์๊ฐ ์ฆ๊ฐํ๋ฉด ์ฑ ์ค์ผ์ผ๋ ์กฐ์ ํ ์ ์๋ค.
Replication Controller์ Replica Set์ ๋น์ทํ ์ฉ์ด์ด๋ค.
๋ ๋ค ์ฉ๋๋ ๊ฐ์ง๋ง ๋๊ฐ์ง๋ ์๋ค.
Replication Controller๋ ๊ตฌ์ ๊ธฐ์ ๋ก Replica Set๋ก ๋์ฒด๋๊ณ ์๋ค.
Replica Set์ ๋ณต์ ๋ฅผ ์ค์ ํ๋ ์๋ก์ด ๊ถ์ฅ ๋ฐฉ๋ฒ์ด๋ค.
ํ์ง๋ง ์์์ ๋ค๋ฃฌ ๋ด์ฉ์ ์ด ๋ ๊ธฐ์ ๋ชจ๋ ์ ์ฉํ ์ ์๋ค.
๊ฐ๊ฐ ์๋ ๋ฐฉ์์ ๋ฏธ์ธํ ์ฐจ์ด๊ฐ ์๋ค.
๋ณต์ ์ปจํธ๋กค๋ฌ ์ ์ ํ์ผ์ ๋ง๋ค์ด์ ๋ณต์ ์ปจํธ๋กค๋ฌ๋ฅผ ์์ฑํ ์ ์๋ค.
template ์์ญ์ ์ปจํธ๋กค๋ฌ๊ฐ ๋ณต์ ๋ณธ์ ๋ง๋ค๊ธฐ ์ํด ์ฌ์ฉํ ํ๋ ํ
ํ๋ฆฟ์ ๋ช
์ํ๋ค. pod์ ์ ์ ํ์ผ์์ ์ฐธ๊ณ ํ ์ ์๋ค.
replicas ์์ญ์๋ ๋ณต์ ํ ๊ฐ์๋ฅผ ์์ฑํ๋ค.
Replica Set์ ์ ํ์ผ์ ๋ง๋ค์ด์ Replica Set์ ์์ฑํ ์ ์๋ค.
๋ณต์ ์ปจํธ๋กค๋ฌ์ ๋ค๋ฅด๊ฒ apiVersion์ด apps/v1์ด๋ค.
๋ณต์ ์ปจํธ๋กค๋ฌ์ Replica Set์ ํฐ ์ฐจ์ด์ ์ด ์๋ค.
Replica Set์๋ selector๋ฅผ ์ ์ํด์ผ ํ๋ค.
selector ์์ญ์ Replica Set ๋ฐ์ ๋์ธ ํ๋๋ฅผ ์๋ณํ ์ ์๊ฒ ํด์ค๋ค.
selector ์์ญ์ ๋ช
์ํด์ผ ํ๋ ์ด์ ๋ Replica Set์ Replica Set์ ์ผ๋ถ๋ก ๋ง๋ค์ด์ง์ง ์์ ํ๋๋ ๊ด๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ฐ๋ น, Replica Set์ selector์ ์ง์ ๋ label๊ณผ ์ผ์นํ๋ Replica Set์ ๋ง๋ค๊ธฐ ์ ์ ๋ง๋ค์ด์ง pod๋ฅผ ๊ณ ๋ คํ๋ค.
๋ณต์ ์ปจํธ๋กค๋ฌ์ ๊ฒฝ์ฐ, selector๊ฐ ํ์ ํ๋๋ ์๋์ง๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
์์ ์ฌ์ง์ฒ๋ผ selector๋ฅผ ์๋ตํ ๊ฒฝ์ฐ, ํ๋ ์ ์ ํ์ผ์์ ์ ๊ณต๋ ๋ ์ด๋ธ๊ณผ ๋์ผํ๋ค๊ณ ์ถ์ ํ๋ค.
์ label๊ณผ selector๊ฐ ํ์ํ ๊น?
Replica Set์ ์ด๋ฏธ ์์ฑ๋ ๊ธฐ์กด ํ๋๋ฅผ ๋ชจ๋ํฐํ๋๋ฐ ์ฌ์ฉ๋๋ค.
Replica Set์ ์ญํ ์ ํ๋๋ฅผ ๋ชจ๋ํฐํ๊ณ ํ๋๊ฐ ๊ณ ์ฅ๋๋ฉด ์ ํ๋๋ฅผ ๋ฐฐํฌํ๋ค.
ํด๋ฌ์คํฐ์๋ ๋ค๋ฅธ ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ํ๋๊ฐ ์๋ฐฑ ๊ฐ์ด๋ค.
์ด๋ ์์ฐ ์ค์ธ pod์ ๋ผ๋ฒจ์ ๋ถ์ด๋ ๊ฒ์ด ์ ์ฉํ๋ค.
selector์ template์ metadata์ ๋ช
์ํ label์ ๋ช
์ํ๋ฉด ํํฐ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด Replica Set์ด ์ด๋ ํ๋๋ฅผ ๋ชจ๋ํฐํ๋์ง ์ ์ ์๋ค.
Replica Set์ ์ด๋ป๊ฒ 6๊ฐ๋ก ์
๋ฐ์ดํธํ ๊น?
๋ฐฉ๋ฒ 1. ์ ์ ํ์ผ์ replicas๋ฅผ 6๊ฐ๋ก ์
๋ฐ์ดํธํ๋ค. ๊ทธ๋ฐ ๋ค์ kubectl ๋ช
๋ น์ด๋ฅผ ํตํด ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฉํ๋ค.
๋ฐฉ๋ฒ 2. ๋งค๊ฐ๋ณ์๋ฅผ ํตํด replicas๋ฅผ 6๊ฐ๋ก ์ง์ ํ๋ค. ์ ์ ํ์ผ์ด๋ ์ด๋ฆ์ ๋ช
์ํ๋ค.
๊ทธ๋ฌ๋ ํ์ผ ์ด๋ฆ์ ์
๋ ฅ์ผ๋ก ์ฌ์ฉํ๋ฉด ํ์ผ์์ ์๋์ผ๋ก replicas๊ฐ ์
๋ฐ์ดํธ๋์ง ์๋๋ค.
๋ค์ ๋งํด ์ ์ ํ์ผ์ replicas๋ ์ฌ์ ํ 3์ด๋ค.
๋ถํ์ ๋ฐ๋ผ ์๋์ผ๋ก ์ค์ผ์ผ๋งํ ์ ์๋ ์ต์
์ด ์กด์ฌํ๋ค. ์ด๋ ๋์ค์ ๋ฐฐ์ธ ์์ ์ด๋ค.
์ฌ์ฉํ ๋ช
๋ น์ ๋ณต์ตํด๋ณด์.
kubectl explain resource๋ช
์ ํตํด resource ์ ์ ํ์ผ์ ๋ํ ์ ๋ณด๋ฅผ ์ป์ ์ ์๋ค.
๋ณต์ ๋ณธ ์๋ฅผ ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์๋ ๋ค์ ๋ ๊ฐ์ง๊ฐ ์๋ค.
Deployment๋ฅผ ํตํด ์ฐ๋ฆฌ๋ ํ๋ถ ์ธ์คํด์ค๋ฅผ ๋งค๋๋ฝ๊ฒ ์ ๊ทธ๋ ์ด๋ํ ์ ์๋ค.
Deployment๋ฅผ ๋ง๋ค๊ธฐ ์ํด Deployment ์ ์ ํ์ผ์ ๋ง๋ค๋ฉด ๋๋ค.
์์ฑ๋ ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ํ๋ฒ์ ๋ณด๊ธฐ ์ํด์๋ ํ๋ธ ์ปจํธ๋กค์ ์คํํ๊ณ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋ฉด ๋๋ค.
์ค์ ์ํ์์ yaml ํ์ผ์ ์ฐพ๊ณ ์์ ํ๊ธฐ์๋ ์๊ฐ์ด ๋น ๋ฏํ๋ค. ๋ฐ๋ผ์ ๋ค์ ์์๋ค์ฒ๋ผ kubectl ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
Create an NGINX Pod
kubectl run nginx --image=nginx
Generate POD Manifest YAML file (-o yaml). Don't create it(--dry-run)
kubectl run nginx --image=nginx --dry-run=client -o yaml
Create a deployment
kubectl create deployment --image=nginx nginx
Generate Deployment YAML file (-o yaml). Don't create it(--dry-run)
kubectl create deployment --image=nginx nginx --dry-run=client -o yaml
Generate Deployment YAML file (-o yaml). Don't create it(--dry-run) with 4 Replicas (--replicas=4)
kubectl create deployment --image=nginx nginx --dry-run=client -o yaml > nginx-deployment.yaml
Save it to a file, make necessary changes to the file (for example, adding more replicas) and then create the deployment.
kubectl create -f nginx-deployment.yaml
OR
In k8s version 1.19+, we can specify the --replicas option to create a deployment with 4 replicas.
kubectl create deployment --image=nginx nginx --replicas=4 --dry-run=client -o yaml > nginx-deployment.yaml
Create a new Deployment with the below attributes using your own deployment definition file.
Name: httpd-frontend;
Replicas: 3;
Image: httpd:2.4-alpine
My Answer: kubectl create deployment httpd-frontend --replicas=3 --image=httpd:2.4-alpine
์๋น์ค๋ ์ ํ๋ฆฌ์ผ์ด์
์ํ์ ๋ค์ํ ๊ตฌ์ฑ ์์ ๊ฐ์ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
์ฟ ๋ฒ๋คํฐ์ค ์๋น์ค๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์
๋๋ ์ฌ์ฉ์์ ์ฐ๊ฒฐํ๋ ๋ฐ ๋์์ ์ค๋ค.
๋ค์ํ ํ๋ ๊ทธ๋ฃน ๊ฐ์ ์ฐ๊ฒฐ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ฒ์ด ์๋น์ค์ด๋ค.
์๋น์ค๋ ํ๋ก ํธ์๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ฉฐ ๋ฐฑ์๋์ ํ๋ก ํธ์๋ ํ๋ ๊ฐ์ ํต์ ์ ๋๊ณ ์ธ๋ถ ๋ฐ์ดํฐ ์์ค์์ ์ฐ๊ฒฐ์ ์ค์ ํ๋๋ฐ ๋์์ ์ค๋ค.
์๋น์ค์ ์ข
๋ฅ์๋ NodePort, ClusterIP, LoadBalancer๊ฐ ์๋ค.
NodePort๋ ๋
ธ๋์ ํฌํธ์ ๊ท ๊ธฐ์ธ์ฌ ํด๋น ๋
ธ๋์์ ์น ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํ ์ค์ธ ํ๋์ ํฌํธ๋ก ์์ฒญํ๋ ๊ฒ์ด๋ค.
ClusterIP๋ ์๋น์ค ์์์ ๊ฐ์ IP๋ฅผ ๋ง๋ค์ด ๋ค์ํ ์๋น์ค ๊ฐ์ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
LoadBalancer๋ ๋ถํ ๋ถ์ฐ์ ์ง์ํ๋ค.
์๋น์ค๋ ๋
ธ๋์ ํฌํธ์ ํ๋์ ํฌํธ๋ฅผ ๋งคํํจ์ผ๋ก์จ ๋์์ ์ค๋ค.
1. TargetPort: ์น์๋ฒ๊ฐ ์คํ ์ค์ธ ํ๋์ ํฌํธ์ด๋ค. ๋์ ํฌํธ(Target port)๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
2. Port: ์๋น์ค ์์ฒด์ ํฌํธ์ด๋ค. ์๋น์ค๋ ๋
ธ๋ ์์ ๊ฐ์ ์๋ฒ์ ๊ฐ๊ธฐ ๋๋ฌธ์ ํด๋ฌ์คํฐ ๋ด๋ถ์ ๊ณ ์ ํ IP ์ฃผ์๋ฅผ ๊ฐ์ง๋ค. ์ด๋ ํด๋ฌ์คํฐ IP๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
3. NodePort: ๋
ธ๋์ ํฌํธ์ด๋ค. ์ธ๋ถ์์ ์น ์๋ฒ์ ์ ๊ทผํ ๋ ์ฌ์ฉํ๋ ํฌํธ์ด๋ค. ๋
ธ๋ ํฌํธ๋ ์ ํจ ๋ฒ์์ธ 30,000์์ 32,767๊น์ง๋ฅผ ํฌํธ๋ฒํธ๋ก ๊ฐ์ง ์ ์๋ค.
์ ์ ํ์ผ์ ์์ฑํด์ ์๋น์ค๋ฅผ ์์ฑํ ์ ์๋ค.
์๋น์ค spec ์์ญ์๋ type๊ณผ port๊ฐ ์๋ค.
type์ ์ฐ๋ฆฌ๊ฐ ๋ง๋๋ ์๋น์ค ์ ํ์ ๊ฐ๋ฆฌํจ๋ค. ClusterIP, NodePort, LoadBalancer๊ฐ ์ฌ ์ ์๋ค.
ํฌํธ ์์ญ ์ค ์ฒซ๋ฒ์งธ ํฌํธ๋ targetPort์ด๋ค. targetPort๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด port์ ๋์ผํ๋ค๊ณ ์ฌ๊ฒจ์ง๋ค. ๋ค์์ผ๋ก port๋ ์๋น์ค ๊ฐ์ฒด์ ํฌํธ์ด๋ค. ์ธ๋ฒ์งธ๋ nodePort์ด๋ค. ์ ํจํ ๋ฒ์ ๋ด์ ์๋ฌด ์ซ์๋ ์ค์ ๊ฐ๋ฅํ๋ค. ๋
ธ๋ ํฌํธ๋ฅผ ๋ช
์ํ์ง ์์ ๊ฒฝ์ฐ 30,000์์ 32,767 ์ฌ์ด์ ์ ํจ ๋ฒ์์ ์๋ ์์ ํฌํธ๊ฐ ์๋์ผ๋ก ํ ๋น๋๋ค.
ํ๋์ ์๋น์ค์ ์ฌ๋ฌ ๊ฐ์ ํฌํธ๊ฐ ๋งคํ๋ ์ ์๊ธฐ ๋๋ฌธ์ ํฌํธ๋ ๋ฐฐ์ด์ด๋ค.
label๊ณผ selector๋ฅผ ์ด์ฉํด ์๋น์ค์ ํ๋๋ฅผ ๋งคํํ ์ ์๋ค.
ํ๋ ์ ์ ํ์ผ์์ ๋ช
์๋ ๋ผ๋ฒจ์ ๊ฐ์ ธ์์ selector ์์ญ์ ๋ช
์ํ๋ฉด ์๋น์ค์ ํ๋๋ฅผ ์ฐ๊ฒฐํ ์ ์๋ค.
curl http://<๋
ธ๋ IP>:<NodePort>
๋ช
๋ น์ด๋ฅผ ํตํด ์น ์๋น์ค์ ์ ๊ทผํ ์ ์๋ค.
ํ๋์ ์๋น์ค์ ์ฌ๋ฌ ํ๋๊ฐ ์ฐ๊ฒฐ๋์ด ์๋๋ผ๋ ์๋น์ค๋ ๋ด์ฅ๋ ๋ถํ ๋ถ์ฐ ์ฅ์น๋ก ์์ฉํด ๋ถํ๋ฅผ ๋ถ์ฐ์ํจ๋ค.
์๋น์ค๋ฅผ ์์ฑํ ๋ ์ฟ ๋ฒ๋คํฐ์ค๋ ์๋์ผ๋ก ์๋น์ค๋ฅผ ์์ฑํด ํด๋ฌ์คํฐ ๋ด ๋ชจ๋ ๋
ธ๋๋ฅผ ๊ฐ๋ฅด์ง๋ฅด๊ณ ๋ชฉํ ํฌํธ๋ฅผ ํด๋ฌ์คํฐ ๋ด ๋ชจ๋ ๋
ธ๋์ ๊ฐ์ ํฌํธ์ ๋งคํํ๋ค.
๋จ์ผ ๋
ธ๋ ์์ ๋จ์ผ ํ๋๋ ๋ค์ค ๋
ธ๋ ์์ ๋ค์ค ํ๋๋ ์๋น์ค๋ ์ ํํ ๋๊ฐ์ด ์์ฑ๋๋ค.
ํ๋๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋ ์ถ๊ฐํ๋ฉด ์๋น์ค๋ ์๋์ผ๋ก ์
๋ฐ์ดํธ๋๋ค. ๋งค์ฐ ์ ์ฐํ๊ณ ์ ์์ ์ด๋ค.
์๋น์ค๋ ์ผ๋จ ์์ฑ๋๋ฉด ์ผ๋ฐ์ ์ผ๋ก ์ถ๊ฐ์ ์ธ ๊ตฌ์ฑ ๋ณ๊ฒฝ์ ํ ํ์๊ฐ ์๋ค.