๋ฉ๋ชจ. ๋ฒ์ญ: ์ด ๊ธ์ ํผ๋ธ๋ฆญ ๋๋ฉ์ธ์ ๊ฒ์ฌ๋ ํ๋ก์ ํธ ์๋ฃ์ ์ผ๋ถ์
๋๋ค.
์์ฝ: ๋ค์์ Kubernetes์์ ๋ฐฐํฌ๋ฅผ ๋๋ฒ๊น
ํ๋ ๋ฐ ๋์์ด ๋๋ ๋ค์ด์ด๊ทธ๋จ์
๋๋ค.
ํด๋ฌ์คํฐ์์ ์ค๋ฅ๋ฅผ ์ฐพ๊ณ ์์ ํ๊ธฐ ์ํ ์์๋์
๋๋ค. ์๋ณธ(์์ด)์ ๋ค์์์ ๊ตฌํ ์ ์์ต๋๋ค.
Kubernetes์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ ์ํด์ผ ํ๋ ์ธ ๊ฐ์ง ๊ตฌ์ฑ ์์๊ฐ ์์ต๋๋ค.
- ์ ๊ฐ - ์ด๊ฒ์ ํฌ๋(Pod)๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ณต์ฌ๋ณธ์ ์์ฑํ๊ธฐ ์ํ ์ผ์ข ์ ๋ ์ํผ์ ๋๋ค.
- ์๋ฐฐ โ ํฌ๋ ๊ฐ์ ํธ๋ํฝ์ ๋ถ์ฐํ๋ ๋ด๋ถ ๋ก๋ ๋ฐธ๋ฐ์
- ์ ๊ตฌ โ ํธ๋ํฝ์ด ์ธ๋ถ ์ธ๊ณ์์ ์๋น์ค๋ก ์ด๋ป๊ฒ ์ ๋ฌ๋๋์ง์ ๋ํ ์ค๋ช .
๋ค์์ ๊ฐ๋ตํ ๊ทธ๋ํฝ ์์ฝ์ ๋๋ค.
1) Kubernetes์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ด๋ถ ๋ฐ ์ธ๋ถ์ ๋ ๊ณ์ธต์ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ํตํด ์ธ๋ถ ์ธ๊ณ๋ก๋ถํฐ ํธ๋ํฝ์ ์์ ํฉ๋๋ค.
2) ๋ด๋ถ ๋ฐธ๋ฐ์๋ฅผ ์๋น์ค๋ผ๊ณ ํ๊ณ , ์ธ๋ถ ๋ฐธ๋ฐ์๋ฅผ ์ธ๊ทธ๋ ์ค๋ผ๊ณ ํฉ๋๋ค.
3) ๋ฐฐํฌ๋ Pod๋ฅผ ์์ฑํ๊ณ ๋ชจ๋ํฐ๋งํฉ๋๋ค(์๋์ผ๋ก ์์ฑ๋์ง ์์).
๊ฐ๋จํ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํ๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์๋
ํ์ธ์. ์ด์ ๋ํ YAML ๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
apiVersion: apps/v1
kind: Deployment # <<<
metadata:
name: my-deployment
labels:
track: canary
spec:
selector:
matchLabels:
any-name: my-app
template:
metadata:
labels:
any-name: my-app
spec:
containers:
- name: cont1
image: learnk8s/app:1.0.0
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service # <<<
metadata:
name: my-service
spec:
ports:
- port: 80
targetPort: 8080
selector:
name: app
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress # <<<
metadata:
name: my-ingress
spec:
rules:
- http:
paths:
- backend:
serviceName: app
servicePort: 80
path: /
์ ์๊ฐ ๊ฝค ๊ธธ์ด์ ๊ตฌ์ฑ ์์๊ฐ ์๋ก ์ด๋ป๊ฒ ๊ด๋ จ๋์ด ์๋์ง ํผ๋ํ๊ธฐ ์ฝ์ต๋๋ค.
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค
- ์ธ์ ํฌํธ 80์ ์ฌ์ฉํด์ผ ํ๊ณ ์ธ์ 8080์ ์ฌ์ฉํด์ผ ํฉ๋๊น?
- ์ถฉ๋ํ์ง ์๋๋ก ๊ฐ ์๋น์ค์ ๋ํด ์ ํฌํธ๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๊น?
- ๋ผ๋ฒจ ์ด๋ฆ์ด ์ค์ํฉ๋๊น? ์ด๋์์๋ ๋์ผํด์ผ ํฉ๋๊น?
๋๋ฒ๊น ์ ์ง์คํ๊ธฐ ์ ์ ์ธ ๊ฐ์ง ๊ตฌ์ฑ ์์๊ฐ ์๋ก ์ด๋ป๊ฒ ์ฐ๊ด๋์ด ์๋์ง ๊ธฐ์ตํด ๋ด ์๋ค. ๋ฐฐํฌ ๋ฐ ์๋น์ค๋ถํฐ ์์ํด ๋ณด๊ฒ ์ต๋๋ค.
๋ฐฐํฌ์ ์๋น์ค์ ๊ด๊ณ
๋๋ผ์๊ฒ ์ง๋ง ๋ฐฐํฌ์ ์๋น์ค๋ ์ ํ ์ฐ๊ฒฐ๋์ด ์์ง ์์ต๋๋ค. ๋์ ์๋น์ค๋ ๋ฐฐํฌ๋ฅผ ์ฐํํ์ฌ Pod๋ฅผ ์ง์ ๊ฐ๋ฆฌํต๋๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ Pod์ ์๋น์ค๊ฐ ์๋ก ์ด๋ป๊ฒ ๊ด๋ จ๋์ด ์๋์ง์ ๊ด์ฌ์ด ์์ต๋๋ค. ๊ธฐ์ตํด์ผ ํ ์ธ ๊ฐ์ง:
- ์ ํ๊ธฐ(
selector
) ์๋น์ค์ ๊ฒฝ์ฐ ํ๋ ์ด์์ Pod ๋ผ๋ฒจ๊ณผ ์ผ์นํด์ผ ํฉ๋๋ค. -
targetPort
์ผ์นํด์ผํฉ๋๋คcontainerPort
Pod ๋ด๋ถ์ ์ปจํ ์ด๋์ ๋๋ค. -
port
์๋น์ค๋ ๋ฌด์์ด๋ ๋ ์ ์์ต๋๋ค. ์๋ก ๋ค๋ฅธ ์๋น์ค๋ IP ์ฃผ์๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋์ผํ ํฌํธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ค์ ๋ค์ด์ด๊ทธ๋จ์ ์์ ๋ชจ๋ ๋ด์ฉ์ ๊ทธ๋ํฝ ํ์์ผ๋ก ๋ํ๋ ๋๋ค.
1) ์๋น์ค๊ฐ ํน์ ํฌ๋๋ก ํธ๋ํฝ์ ์ ๋ฌํ๋ค๊ณ ์์ํด ๋ณด์ธ์.
2) ํฌ๋๋ฅผ ์์ฑํ ๋ ๋ค์์ ์ง์ ํด์ผ ํฉ๋๋ค. containerPort
ํฌ๋์ ๊ฐ ์ปจํ
์ด๋์ ๋ํด ๋ค์์ ์ํํฉ๋๋ค.
3) ์๋น์ค๋ฅผ ์์ฑํ ๋ ๋ค์์ ์ง์ ํด์ผ ํฉ๋๋ค. port
ะธ targetPort
. ๊ทธ๋ฌ๋ ์ปจํ
์ด๋์ ์ฐ๊ฒฐํ๋ ๋ฐ ์ด๋ ๊ฒ์ด ์ฌ์ฉ๋ฉ๋๊น?
4) ๋ฅผ ํตํด targetPort
. ์ผ์นํด์ผ ํฉ๋๋ค. containerPort
.
5) ์ปจํ
์ด๋์ ํฌํธ 3000์ด ์ด๋ ค ์๋ค๊ณ ๊ฐ์ ํ๋ฉด ๊ฐ์ด targetPort
๋์ผํด์ผํฉ๋๋ค.
YAML ํ์ผ์์ ๋ผ๋ฒจ๊ณผ ports
/ targetPort
์ผ์นํด์ผํฉ๋๋ค:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
labels:
track: canary
spec:
selector:
matchLabels:
any-name: my-app
template:
metadata:
labels: # <<<
any-name: my-app # <<<
spec:
containers:
- name: cont1
image: learnk8s/app:1.0.0
ports:
- containerPort: 8080 # <<<
---
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
ports:
- port: 80
targetPort: 8080 # <<<
selector: # <<<
any-name: my-app # <<<
๋ผ๋ฒจ์ ์ด๋ป์ต๋๊น? track: canary
๋ฐฐํฌ ์น์
์๋จ์ ์์ต๋๊น? ์ผ์นํด์ผ ํ ๊น์?
์ด ๋ ์ด๋ธ์ ๋ฐฐํฌ์ ๋ฐ๋ผ ๋ค๋ฅด๋ฉฐ ์๋น์ค์์ ํธ๋ํฝ์ ๋ผ์ฐํ ํ๋ ๋ฐ ์ฌ์ฉ๋์ง ์์ต๋๋ค. ์ฆ, ์ ๊ฑฐํ๊ฑฐ๋ ๋ค๋ฅธ ๊ฐ์ ํ ๋นํ ์ ์์ต๋๋ค.
์ ํ์๋ ์ด๋ป์ต๋๊น? matchLabels
?
ํญ์ Pod ๋ผ๋ฒจ๊ณผ ์ผ์นํด์ผ ํฉ๋๋ค., ์ด๋ ๋ฐฐํฌ์์ ํฌ๋๋ฅผ ์ถ์ ํ๋ ๋ฐ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฌ๋ฐ๋ฅธ ํธ์ง์ ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด๋ป๊ฒ ํ์ธํ๋์?
๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ Pod ๋ ์ด๋ธ์ ํ์ธํ ์ ์์ต๋๋ค.
kubectl get pods --show-labels
๋๋ ํฌ๋๊ฐ ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ๋ ๊ฒฝ์ฐ:
kubectl get pods --selector any-name=my-app --show-labels
ะะดะต any-name=my-app
๋ผ๋ฒจ์
๋๋ค any-name: my-app
.
๋จ์ ์ด๋ ค์์ด ์๋์?
ํฌ๋์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค! ์ด๋ ๊ฒ ํ๋ ค๋ฉด ๋ค์ ๋ช
๋ น์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. port-forward
kubectl์์. ์ด๋ฅผ ํตํด ์๋น์ค์ ์ฐ๊ฒฐํ๊ณ ์ฐ๊ฒฐ์ ํ์ธํ ์ ์์ต๋๋ค.
kubectl port-forward service/<service name> 3000:80
ะะดะตัั :
-
service/<service name>
- ์๋น์ค ์ด๋ฆ; ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ์๋ ๊ทธ๋ ์งmy-service
; - 3000์ ์ปดํจํฐ์์ ์ด์ด์ผ ํ๋ ํฌํธ์ ๋๋ค.
- 80 - ํ๋์ ์ง์ ๋ ํฌํธ
port
์๋น์ค.
์ฐ๊ฒฐ์ด ์ค์ ๋๋ฉด ์ค์ ์ด ์ฌ๋ฐ๋ฅธ ๊ฒ์ ๋๋ค.
์ฐ๊ฒฐ์ ์คํจํ๋ฉด ๋ ์ด๋ธ์ ๋ฌธ์ ๊ฐ ์๊ฑฐ๋ ํฌํธ๊ฐ ์ผ์นํ์ง ์๋ ๊ฒ์ ๋๋ค.
์๋น์ค์ ์ธ๊ทธ๋ ์ค์ ๊ด๊ณ
์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋ ๋ค์ ๋จ๊ณ์๋ Ingress ์ค์ ์ด ํฌํจ๋ฉ๋๋ค. Ingress๋ ์๋น์ค๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ ์์์ผ ํ๊ณ , Pod๋ฅผ ์ฐพ์ ํด๋น ์๋น์ค๋ก ํธ๋ํฝ์ ์ ๋ฌํด์ผ ํฉ๋๋ค. Ingress๋ ์ด๋ฆ๊ณผ ์ด๋ฆฐ ํฌํธ๋ก ํ์ํ ์๋น์ค๋ฅผ ์ฐพ์ต๋๋ค.
์์ ๋ฐ ์๋น์ค ์ค๋ช ์์ ๋ ๋งค๊ฐ๋ณ์๊ฐ ์ผ์นํด์ผ ํฉ๋๋ค.
-
servicePort
Ingress์์๋ ๋งค๊ฐ๋ณ์์ ์ผ์นํด์ผ ํฉ๋๋ค.port
์๋น์ค ์ค; -
serviceName
Ingress์์๋ ํ๋์ ์ผ์นํด์ผ ํฉ๋๋ค.name
์๋น์ค ์ค.
๋ค์ ๋ค์ด์ด๊ทธ๋จ์ ํฌํธ ์ฐ๊ฒฐ์ ์์ฝํฉ๋๋ค.
1) ์ด๋ฏธ ์๊ณ ์๋ฏ์ด ์๋น์ค๋ ํน์ port
:
2) Ingress์๋ ๋ค์๊ณผ ๊ฐ์ ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค. servicePort
:
3) ์ด ๋งค๊ฐ๋ณ์(servicePort
)๋ ํญ์ ์ผ์นํด์ผ ํฉ๋๋ค. port
์๋น์ค ์ ์์์:
4) ์๋น์ค์ ํฌํธ 80์ด ์ง์ ๋ ๊ฒฝ์ฐ ๋ค์์ด ํ์ํฉ๋๋ค. servicePort
๋ํ 80๊ณผ ๋์ผํ์ต๋๋ค.
์ค์ ๋ก๋ ๋ค์ ์ค์ ์ฃผ์ํด์ผ ํฉ๋๋ค.
apiVersion: v1
kind: Service
metadata:
name: my-service # <<<
spec:
ports:
- port: 80 # <<<
targetPort: 8080
selector:
any-name: my-app
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- http:
paths:
- backend:
serviceName: my-service # <<<
servicePort: 80 # <<<
path: /
Ingress๊ฐ ์คํ ์ค์ธ์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์ด ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค. kubectl port-forward
ํ์ง๋ง ์๋น์ค ๋์ Ingress ์ปจํธ๋กค๋ฌ์ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค.
๋จผ์ Ingress ์ปจํธ๋กค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ Pod์ ์ด๋ฆ์ ์ฐพ์์ผ ํฉ๋๋ค.
kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS
kube-system coredns-5644d7b6d9-jn7cq 1/1 Running
kube-system etcd-minikube 1/1 Running
kube-system kube-apiserver-minikube 1/1 Running
kube-system kube-controller-manager-minikube 1/1 Running
kube-system kube-proxy-zvf2h 1/1 Running
kube-system kube-scheduler-minikube 1/1 Running
kube-system nginx-ingress-controller-6fc5bcc 1/1 Running
Ingress Pod(๋ค๋ฅธ ๋ค์์คํ์ด์ค์ ์์ ์ ์์)๋ฅผ ์ฐพ์ ๋ค์ ๋ช
๋ น์ ์คํํฉ๋๋ค. describe
ํฌํธ ๋ฒํธ๋ฅผ ์ฐพ์ผ๋ ค๋ฉด ๋ค์์ ์ํํ์ญ์์ค.
kubectl describe pod nginx-ingress-controller-6fc5bcc
--namespace kube-system
| grep Ports
Ports: 80/TCP, 443/TCP, 18080/TCP
๋ง์ง๋ง์ผ๋ก ํฌ๋์ ์ฐ๊ฒฐํฉ๋๋ค.
kubectl port-forward nginx-ingress-controller-6fc5bcc 3000:80 --namespace kube-system
์ด์ ์ปดํจํฐ์ ํฌํธ 3000์ผ๋ก ์์ฒญ์ ๋ณด๋ผ ๋๋ง๋ค Ingress ์ปจํธ๋กค๋ฌ๋ฅผ ํตํด ํฌ๋์ ํฌํธ 80์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค. ๋ก ๊ฐ๋ฉด์
ํฌํธ ์์ฝ
์ด๋ค ํฌํธ์ ๋ ์ด๋ธ์ด ์ผ์นํด์ผ ํ๋์ง ๋ค์ ํ ๋ฒ ๊ธฐ์ตํด ๋ด ์๋ค.
- ์๋น์ค ์ ์์ ์ ํ๊ธฐ๋ Pod์ ๋ ์ด๋ธ๊ณผ ์ผ์นํด์ผ ํฉ๋๋ค.
-
targetPort
์ ์์ ๋ฐ๋ฅด๋ฉด ์๋น์ค๋ ์ผ์นํด์ผ ํฉ๋๋ค.containerPort
ํฌ๋ ๋ด๋ถ์ ์ปจํ ์ด๋; -
port
์ ์์์ ์๋น์ค๋ ๋ฌด์์ด๋ ๋ ์ ์์ต๋๋ค. ์๋ก ๋ค๋ฅธ ์๋น์ค๋ IP ์ฃผ์๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋์ผํ ํฌํธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. -
servicePort
์ธ๊ทธ๋ ์ค๋ ์ผ์นํด์ผ ํฉ๋๋ค.port
์๋น์ค์ ์ ์์์; - ์๋น์ค ์ด๋ฆ์ ํ๋์ ์ผ์นํด์ผ ํฉ๋๋ค.
serviceName
์ธ๊ทธ๋ ์ค์์.
์ํ๊น๊ฒ๋ YAML ๊ตฌ์ฑ์ ์ ์ ํ๊ฒ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค.
์ผ์ด ์๋ชป๋๋ฉด ์ด๋ป๊ฒ ๋๋์?
ํฌ๋๊ฐ ์์๋์ง ์๊ฑฐ๋ ์ถฉ๋ํ ์ ์์ต๋๋ค.
Kubernetes์์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฌธ์ ๋ฅผ ์ง๋จํ๋ 3๋จ๊ณ
๋ฐฐํฌ ๋๋ฒ๊น ์ ์์ํ๊ธฐ ์ ์ Kubernetes ์๋ ๋ฐฉ์์ ์ ์ดํดํด์ผ ํฉ๋๋ค.
K8s์ ๋ค์ด๋ก๋๋ ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์๋ ์ธ ๊ฐ์ง ๊ตฌ์ฑ ์์๊ฐ ์์ผ๋ฏ๋ก ๋งจ ์๋๋ถํฐ ์์ํ์ฌ ํน์ ์์์ ๋ฐ๋ผ ๋๋ฒ๊น ํด์ผ ํฉ๋๋ค.
- ๋จผ์ ํฌ๋๊ฐ ์๋ํ๋์ง ํ์ธํ ๋ค์...
- ์๋น์ค๊ฐ Pod์ ํธ๋ํฝ์ ๊ณต๊ธํ๋์ง ํ์ธํ ํ...
- Ingress๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์๋์ง ํ์ธํ์ธ์.
์๊ฐ์ ํํ:
1) ๋ฌธ์ ๋ ๋งจ ๋ฐ๋ฐ๋ฅ๋ถํฐ ์ฐพ๊ธฐ ์์ํด์ผ ํฉ๋๋ค. ๋จผ์ ํฌ๋์ ์ํ๊ฐ ์๋์ง ํ์ธํ์ธ์. Ready
ะธ Running
:
2) ํฌ๋๊ฐ ์ค๋น๋๋ฉด(Ready
), ์๋น์ค๊ฐ ํฌ๋ ๊ฐ์ ํธ๋ํฝ์ ๋ถ์ฐํ๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํด์ผ ํฉ๋๋ค.
3) ๋ง์ง๋ง์ผ๋ก ์๋น์ค์ Ingress ๊ฐ์ ์ฐ๊ฒฐ์ ๋ถ์ํด์ผ ํฉ๋๋ค.
1. ํฌ๋ ์ง๋จ
๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ฌธ์ ๋ ํฌ๋์ ๊ด๋ จ์ด ์์ต๋๋ค. Pod๊ฐ ๋ค์๊ณผ ๊ฐ์ด ๋์ด๋์ด ์๋์ง ํ์ธํ์ธ์. Ready
ะธ Running
. ๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
kubectl get pods
NAME READY STATUS RESTARTS AGE
app1 0/1 ImagePullBackOff 0 47h
app2 0/1 Error 0 47h
app3-76f9fcd46b-xbv4k 1/1 Running 1 47h
์ ๋ช
๋ น ์ถ๋ ฅ์์ โโ๋ง์ง๋ง Pod๋ ๋ค์๊ณผ ๊ฐ์ด ๋์ด๋ฉ๋๋ค. Running
ะธ Ready
๊ทธ๋ฌ๋ ๋ค๋ฅธ ๋ ์ฌ๋์ ๊ฒฝ์ฐ์๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
๋ฌด์์ด ์๋ชป๋์๋์ง ์ดํดํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
ํฌ๋ ์ง๋จ์ ์ ์ฉํ ๋ค ๊ฐ์ง ๋ช ๋ น์ด ์์ต๋๋ค.
-
kubectl logs <ะธะผั pod'ะฐ>
ํฌ๋์ ์ปจํ ์ด๋์์ ๋ก๊ทธ๋ฅผ ์ถ์ถํ ์ ์์ต๋๋ค. -
kubectl describe pod <ะธะผั pod'ะฐ>
ํฌ๋์ ๊ด๋ จ๋ ์ด๋ฒคํธ ๋ชฉ๋ก์ ๋ณผ ์ ์์ต๋๋ค. -
kubectl get pod <ะธะผั pod'ะฐ>
Kubernetes์ ์ ์ฅ๋ ํฌ๋์ YAML ๊ตฌ์ฑ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. -
kubectl exec -ti <ะธะผั pod'ะฐ> bash
ํฌ๋ ์ปจํ ์ด๋ ์ค ํ๋์์ ๋ํํ ๋ช ๋ น ์ ธ์ ์์ํ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ์ ์ ํํด์ผ ํฉ๋๊น?
์ฌ์ค์ ๋ณดํธ์ ์ธ ๋ช ๋ น์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ค์ ์กฐํฉ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ผ๋ฐ์ ์ธ ํฌ๋ ๋ฌธ์
ํฌ๋ ์ค๋ฅ์๋ ์์ ์ค๋ฅ์ ๋ฐํ์ ์ค๋ฅ๋ผ๋ ๋ ๊ฐ์ง ์ฃผ์ ์ ํ์ด ์์ต๋๋ค.
์์ ์ค๋ฅ:
-
ImagePullBackoff
-
ImageInspectError
-
ErrImagePull
-
ErrImageNeverPull
-
RegistryUnavailable
-
InvalidImageName
๋ฐํ์ ์ค๋ฅ:
-
CrashLoopBackOff
-
RunContainerError
-
KillContainerError
-
VerifyNonRootError
-
RunInitContainerError
-
CreatePodSandboxError
-
ConfigPodSandboxError
-
KillPodSandboxError
-
SetupNetworkError
-
TeardownNetworkError
์ผ๋ถ ์ค๋ฅ๋ ๋ค๋ฅธ ์ค๋ฅ๋ณด๋ค ๋ ์ผ๋ฐ์ ์ ๋๋ค. ๋ค์์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ค๋ฅ ์ค ์ผ๋ถ์ ์ด๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์ด๋ฏธ์งํ๋ฐฑํด์
์ด ์ค๋ฅ๋ Kubernetes๊ฐ ํฌ๋ ์ปจํ ์ด๋ ์ค ํ๋์ ๋ํ ์ด๋ฏธ์ง๋ฅผ ์ป์ ์ ์์ ๋ ๋ฐ์ํฉ๋๋ค. ์ด์ ๋ํ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ธ โโ๊ฐ์ง ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ด๋ฏธ์ง ์ด๋ฆ์ด ์๋ชป๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ด๋ฆ์ ์ค์๊ฐ ์๊ฑฐ๋ ์ด๋ฏธ์ง๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค.
- ์ด๋ฏธ์ง์ ์กด์ฌํ์ง ์๋ ํ๊ทธ๊ฐ ์ง์ ๋์์ต๋๋ค.
- ์ด๋ฏธ์ง๋ ๊ฐ์ธ ๋ ์ง์คํธ๋ฆฌ์ ์ ์ฅ๋๋ฉฐ Kubernetes์๋ ํด๋น ์ด๋ฏธ์ง์ ์ก์ธ์คํ ์ ์๋ ๊ถํ์ด ์์ต๋๋ค.
์ฒ์ ๋ ๊ฐ์ง ์ด์ ๋ ์ ๊ฑฐํ๊ธฐ ์ฝ์ต๋๋ค. ์ด๋ฏธ์ง ์ด๋ฆ๊ณผ ํ๊ทธ๋ง ์์ ํ๋ฉด ๋ฉ๋๋ค. ํ์์ ๊ฒฝ์ฐ Secret์ ๋ซํ ๋ ์ง์คํธ๋ฆฌ์ ๋ํ ์๊ฒฉ ์ฆ๋ช
์ ์
๋ ฅํ๊ณ Pod์ ๋งํฌ๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค. Kubernetes ๋ฌธ์์์
์ถฉ๋ ๋ฃจํ ๋ฐฑ์คํ
Kubenetes์์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. CrashLoopBackOff
, ์ปจํ
์ด๋๋ฅผ ์์ํ ์ ์๋ ๊ฒฝ์ฐ. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ๋ฐ์ํฉ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ ๋ฐฉํดํ๋ ๋ฒ๊ทธ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ต๋๋ค.
- ์ปจํ
์ด๋
์๋ชป ๊ตฌ์ฑ๋จ ; - ํ์ฑ ํ ์คํธ๊ฐ ๋๋ฌด ์ฌ๋ฌ ๋ฒ ์คํจํ์ต๋๋ค.
์คํจ ์ด์ ๋ฅผ ์ฐพ์ผ๋ ค๋ฉด ์ปจํ ์ด๋์ ๋ก๊ทธ์ ์ก์ธ์คํด์ผ ํฉ๋๋ค. ์ปจํ ์ด๋๊ฐ ๋๋ฌด ๋นจ๋ฆฌ ๋ค์ ์์๋์ด ๋ก๊ทธ์ ์ก์ธ์คํ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
kubectl logs <pod-name> --previous
์ด์ ์ปจํ ์ด๋ ๊ตฌํ์ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ํ์ํฉ๋๋ค.
์คํ์ปจํ ์ด๋ ์ค๋ฅ
์ด ์ค๋ฅ๋ ์ปจํ ์ด๋๊ฐ ์์๋์ง ์์ ๋ ๋ฐ์ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋๊ธฐ ์ ์ ์๊ฐ์ ํด๋นํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์๋ชป๋ ์ค์ ์ผ๋ก ์ธํด ๋ฐ์ํฉ๋๋ค.
- ConfigMap ๋๋ Secrets์ ๊ฐ์ด ์กด์ฌํ์ง ์๋ ๋ณผ๋ฅจ์ ๋ง์ดํธํ๋ ค๊ณ ์๋ํฉ๋๋ค.
- ์ฝ๊ธฐ ์ ์ฉ ๋ณผ๋ฅจ์ ์ฝ๊ธฐ-์ฐ๊ธฐ๋ก ๋ง์ดํธํ๋ ค๋ ์๋์ ๋๋ค.
ํ์ ์ด๋ฌํ ์ค๋ฅ๋ฅผ ๋ถ์ํ๋ ๋ฐ ๋งค์ฐ ์ ํฉํฉ๋๋ค. kubectl describe pod <pod-name>
.
ํฌ๋๊ฐ ๋ณด๋ฅ ์ค ์ํ์ ๋๋ค.
์์ฑ๋ ํฌ๋๋ ํด๋น ์ํ๋ก ์ ์ง๋ฉ๋๋ค. Pending
.
์ ์ด๋ฐ ์ผ์ด ์ผ์ด๋๋ ๊ฑธ๊น์?
๊ฐ๋ฅํ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค(์ค์ผ์ค๋ฌ๊ฐ ์ ๋๋ก ์๋ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค).
- ํด๋ฌ์คํฐ์ ์ฒ๋ฆฌ ๋ฅ๋ ฅ, ๋ฉ๋ชจ๋ฆฌ ๋ฑ Pod๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ๋ฆฌ์์ค๊ฐ ๋ถ์กฑํฉ๋๋ค.
- ๊ฐ์ฒด๊ฐ ์ ์ ํ ๋ค์์คํ์ด์ค์ ์ค์น๋ฉ๋๋ค.
ResourceQuota
ํฌ๋๋ฅผ ์์ฑํ๋ฉด ๋ค์์คํ์ด์ค๊ฐ ํ ๋น๋์ ์ด๊ณผํ๊ฒ ๋ฉ๋๋ค. - ํฌ๋๊ฐ ๋ณด๋ฅ ์ค์ผ๋ก ๋ฐ์ธ๋ฉ๋์์ต๋๋ค.
PersistentVolumeClaim
.
์ด ๊ฒฝ์ฐ ๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. kubectl describe
๊ทธ๋ฆฌ๊ณ ํด๋น ๋ถ๋ถ์ ํ์ธํด๋ณด์ธ์ Events
:
kubectl describe pod <pod name>
๊ด๋ จ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ResourceQuotas
, ๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ ๋ก๊ทธ๋ฅผ ๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค.
kubectl get events --sort-by=.metadata.creationTimestamp
ํฌ๋๊ฐ ์ค๋น๋์ง ์์์ต๋๋ค.
Pod๊ฐ ๋ค์๊ณผ ๊ฐ์ด ๋์ด๋์ด ์๋ ๊ฒฝ์ฐ Running
, ํ์ง๋ง ์ํ๊ฐ ์๋๋๋ค. Ready
, ์ค๋น ์ํ๋ฅผ ํ์ธํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. (์ค๋น ์ํ ํ๋ก๋ธ) ์คํจํฉ๋๋ค.
์ด ๊ฒฝ์ฐ ํฌ๋๋ ์๋น์ค์ ์ฐ๊ฒฐ๋์ง ์์ผ๋ฉฐ ํธ๋ํฝ์ด ์๋น์ค๋ก ํ๋ฅด์ง ์์ต๋๋ค. ์ค๋น ํ
์คํธ ์คํจ๋ ์ ํ๋ฆฌ์ผ์ด์
๋ฌธ์ ๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์ค๋ฅ๋ฅผ ์ฐพ์ผ๋ ค๋ฉด ํด๋น ์น์
์ ๋ถ์ํด์ผ ํฉ๋๋ค. Events
๋ช
๋ น ์ถ๋ ฅ์์ kubectl describe
.
2. ์๋น์ค ์ง๋จ
ํฌ๋๊ฐ ๋ค์๊ณผ ๊ฐ์ด ๋์ด๋๋ ๊ฒฝ์ฐ Running
ะธ Ready
, ํ์ง๋ง ์ฌ์ ํ ์ ํ๋ฆฌ์ผ์ด์
์์ ์๋ต์ด ์์ผ๋ฉด ์๋น์ค ์ค์ ์ ํ์ธํด์ผ ํฉ๋๋ค.
์๋น์ค๋ ๋ผ๋ฒจ์ ๋ฐ๋ผ ํธ๋ํฝ์ Pod๋ก ๋ผ์ฐํ ํ๋ ์ญํ ์ ๋ด๋นํฉ๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ฅ ๋จผ์ ํด์ผ ํ ์ผ์ ์๋น์ค์์ ์๋ํ๋ ํฌ๋ ์๋ฅผ ํ์ธํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ์๋น์ค์์ ์๋ํฌ์ธํธ๋ฅผ ํ์ธํ๋ฉด ๋ฉ๋๋ค.
kubectl describe service <service-name> | grep Endpoints
๋์ ์ ๋ค์ ํ์์ ๊ฐ ์์
๋๋ค. <IP-ะฐะดัะตั:ะฟะพัั>
, ์ถ๋ ฅ์๋ ๊ทธ๋ฌํ ์์ด ํ๋ ์ด์ ์์ด์ผ ํฉ๋๋ค(์ฆ, ํ๋ ์ด์์ Pod๊ฐ ์๋น์ค์ ์๋ํจ).
๋ง์ฝ ์น์
Endpoins
๋น์ด ์์ผ๋ฉด ๋ ๊ฐ์ง ์ต์
์ด ๊ฐ๋ฅํฉ๋๋ค.
- ์ฌ๋ฐ๋ฅธ ๋ผ๋ฒจ์ด ์๋ Pod๊ฐ ์์ต๋๋ค(ํํธ: ๋ค์์คํ์ด์ค๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ ํ๋์๋์ง ํ์ธํ์ธ์).
- ์ ํ๊ธฐ์ ์๋น์ค ๋ผ๋ฒจ์ ์ค๋ฅ๊ฐ ์์ต๋๋ค.
์๋ํฌ์ธํธ ๋ชฉ๋ก์ด ํ์๋์ง๋ง ์ฌ์ ํ ์ ํ๋ฆฌ์ผ์ด์
์ ์ก์ธ์คํ ์ ์๋ค๋ฉด ์์ธ์ ๋ค์์ ๋ฒ๊ทธ์ผ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. targetPort
์๋น์ค ์ค๋ช
์.
์๋น์ค ๊ธฐ๋ฅ์ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์๋น์ค ์ ํ์ ๊ด๊ณ์์ด ๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ ์ ์์ต๋๋ค. kubectl port-forward
์ฐ๊ฒฐํ๋ ค๋ฉด:
kubectl port-forward service/<service-name> 3000:80
ะะดะตัั :
-
<service-name>
- ์๋น์ค ์ด๋ฆ; - 3000์ ์ปดํจํฐ์์ ์ฌ๋ ํฌํธ์ ๋๋ค.
- 80 - ์๋น์ค ์ธก ํฌํธ์ ๋๋ค.
3. ์ง์ ์ง๋จ
์ฌ๊ธฐ๊น์ง ์ฝ์๋ค๋ฉด ๋ค์์ ์ํํ์ญ์์ค.
- ํฌ๋๋ ๋ค์๊ณผ ๊ฐ์ด ๋์ด๋ฉ๋๋ค.
Running
ะธReady
; - ์๋น์ค๋ ํฌ๋ ๊ฐ์ ํธ๋ํฝ์ ์ฑ๊ณต์ ์ผ๋ก ๋ถ์ฐํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ฌ์ ํ ์ฑ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
์ด๋ ์์ ์ปจํธ๋กค๋ฌ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์ง ์์์ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. Ingress ์ปจํธ๋กค๋ฌ๋ ํด๋ฌ์คํฐ์ ํ์ฌ ๊ตฌ์ฑ ์์์ด๋ฏ๋ก ์ ํ์ ๋ฐ๋ผ ๋๋ฒ๊น ๋ฐฉ๋ฒ์ด ๋ค๋ฆ ๋๋ค.
๊ทธ๋ฌ๋ Ingress๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด ํน์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋งค์ฐ ๊ฐ๋จํ ์์
์ ์ํํ ์ ์์ต๋๋ค. ์ธ๊ทธ๋ ์ค ์ฉ๋ serviceName
ะธ servicePort
์๋น์ค์ ์ฐ๊ฒฐํฉ๋๋ค. ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ์ด ์์
์ ์ํํ ์ ์์ต๋๋ค.
kubectl describe ingress <ingress-name>
์ด์ธ ๊ฒฝ์ฐ Backend
๋น์ด ์์ผ๋ฉด ๊ตฌ์ฑ ์ค๋ฅ๊ฐ ๋ฐ์ํ ํ๋ฅ ์ด ๋์ต๋๋ค. ๋ฐฑ์๋๊ฐ ์ ์๋ฆฌ์ ์์ง๋ง ์ฌ์ ํ ์ ํ๋ฆฌ์ผ์ด์
์ ์ก์ธ์คํ ์ ์๋ ๊ฒฝ์ฐ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ด๋ จ๋ ์ ์์ต๋๋ค.
- ๊ณต์ฉ ์ธํฐ๋ท์์ ์์ ์ ๊ทผ์ฑ ์ค์
- ๊ณต์ฉ ์ธํฐ๋ท์ ํด๋ฌ์คํฐ ์ ๊ทผ์ฑ ์ค์ .
Ingress Pod์ ์ง์ ์ฐ๊ฒฐํ์ฌ ์ธํ๋ผ ๋ฌธ์ ๋ฅผ ์๋ณํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ๋จผ์ Ingress Controller Pod๋ฅผ ์ฐพ์ผ์ธ์(๋ค๋ฅธ ๋ค์์คํ์ด์ค์ ์์ ์ ์์).
kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS
kube-system coredns-5644d7b6d9-jn7cq 1/1 Running
kube-system etcd-minikube 1/1 Running
kube-system kube-apiserver-minikube 1/1 Running
kube-system kube-controller-manager-minikube 1/1 Running
kube-system kube-proxy-zvf2h 1/1 Running
kube-system kube-scheduler-minikube 1/1 Running
kube-system nginx-ingress-controller-6fc5bcc 1/1 Running
๋ช
๋ น์ ์ฌ์ฉํ์ญ์์ค describe
ํฌํธ๋ฅผ ์ค์ ํ๋ ค๋ฉด:
kubectl describe pod nginx-ingress-controller-6fc5bcc
--namespace kube-system
| grep Ports
๋ง์ง๋ง์ผ๋ก ํฌ๋์ ์ฐ๊ฒฐํฉ๋๋ค.
kubectl port-forward nginx-ingress-controller-6fc5bcc 3000:80 --namespace kube-system
์ด์ ์ปดํจํฐ์ ํฌํธ 3000์ ๋ํ ๋ชจ๋ ์์ฒญ์ด ํฌ๋์ ํฌํธ 80์ผ๋ก ๋ฆฌ๋๋ ์ ๋ฉ๋๋ค.
์ด์ ์๋ํฉ๋๊น?
- ๊ทธ๋ ๋ค๋ฉด ๋ฌธ์ ๋ ์ธํ๋ผ์ ์์ต๋๋ค. ํธ๋ํฝ์ด ํด๋ฌ์คํฐ๋ก ์ด๋ป๊ฒ ๋ผ์ฐํ ๋๋์ง ์ ํํ ์์๋ด๋ ๊ฒ์ด ํ์ํฉ๋๋ค.
- ๊ทธ๋ ์ง ์๋ค๋ฉด Ingress ์ปจํธ๋กค๋ฌ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ ๋๋ค.
Ingress ์ปจํธ๋กค๋ฌ๊ฐ ์๋ํ์ง ์์ผ๋ฉด ๋๋ฒ๊น ํด์ผ ํฉ๋๋ค.
Ingress ์ปจํธ๋กค๋ฌ์๋ ๋ค์ํ ์ข
๋ฅ๊ฐ ์์ต๋๋ค. ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๊ฒ์ Nginx, HAProxy, Traefik ๋ฑ์
๋๋ค. (๊ธฐ์กด ์๋ฃจ์
์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค์์ ์ฐธ์กฐํ์ธ์.
Ingress Nginx ์ปจํธ๋กค๋ฌ ๋๋ฒ๊น
Ingress-nginx ํ๋ก์ ํธ์๋ ๊ณต์ kubectl ingress-nginx
๋ค์ ์ฉ๋๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋ก๊ทธ, ๋ฐฑ์๋, ์ธ์ฆ์ ๋ฑ ๋ถ์
- Ingress์ ๋ํ ์ฐ๊ฒฐ
- ํ์ฌ ๊ตฌ์ฑ์ ์ฐ๊ตฌํ๊ณ ์์ต๋๋ค.
๋ค์ ์ธ ๊ฐ์ง ๋ช ๋ น์ด ๋์์ด ๋ ๊ฒ์ ๋๋ค.
-
kubectl ingress-nginx lint
โ ํ์ธnginx.conf
; -
kubectl ingress-nginx backend
โ ๋ฐฑ์๋๋ฅผ ํ์ํฉ๋๋ค(์ ๋น์ทํจ).kubectl describe ingress <ingress-name>
); -
kubectl ingress-nginx logs
โ ๋ก๊ทธ๋ฅผ ํ์ธํฉ๋๋ค.
์ด๋ค ๊ฒฝ์ฐ์๋ ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ Ingress ์ปจํธ๋กค๋ฌ์ ๋ํ ์ฌ๋ฐ๋ฅธ ๋ค์์คํ์ด์ค๋ฅผ ์ง์ ํด์ผ ํ ์๋ ์์ต๋๋ค. --namespace <name>
.
๊ฐ์
์ด๋์๋ถํฐ ์์ํด์ผ ํ ์ง ๋ชจ๋ฅด๋ฉด Kubernetes ๋ฌธ์ ํด๊ฒฐ์ด ์ด๋ ค์ธ ์ ์์ต๋๋ค. ํญ์ ์ํฅ์์ผ๋ก ๋ฌธ์ ์ ์ ๊ทผํด์ผ ํฉ๋๋ค. ์ฆ, Pod๋ก ์์ํ ๋ค์ ์๋น์ค์ Ingress๋ก ์ด๋ํด์ผ ํฉ๋๋ค. ์ด ๋ฌธ์์ ์ค๋ช ๋ ๋๋ฒ๊น ๊ธฐ์ ์ ๋ค์๊ณผ ๊ฐ์ ๋ค๋ฅธ ๊ฐ์ฒด์ ์ ์ฉ๋ ์ ์์ต๋๋ค.
- ์ ํด ์์ ๋ฐ CronJobs
- StatefulSet ๋ฐ DaemonSet.
๊ฐ์ฌ์ ๋ง์์ ์ ํฉ๋๋ค
๋ฒ์ญ๊ฐ์ ์ถ์
๋ธ๋ก๊ทธ์์๋ ์ฝ์ด๋ณด์ธ์.
- ยซ
Kubernetes ํฌ๋์์ ๋๋ฒ๊น ์ ์ํ kubectl-debug ํ๋ฌ๊ทธ์ธ "; - ยซ
์ฟ ๋ฒ๋คํฐ์ค ์ด์์ ์ฌ๋ฏธ์๋ ์์คํ ๋ฒ๊ทธ 6๊ฐ์ง [๋ฐ ํด๋น ์๋ฃจ์ ] "; - ยซ
Kubernetes์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์๋ฅผ ์ํ ๋๊ตฌ "; - ยซ
SRE ์ผ์์ํ์ ๋ํ 6๊ฐ์ง ์ค์ฉ์ ์ธ ์ด์ผ๊ธฐ ".
์ถ์ฒ : habr.com