Chapter 8 - ์ฟ ๋ฒ๋คํฐ์ค๋?
SECTION 01 ์ฟ ๋ฒ๋คํฐ์ค๋?
- ์ฟ ๋ฒ๋คํฐ์ค(kurbernetes) ๋ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ์ ์ผ์ข ์ด๋ค.
- k ์ s ์ฌ์ด์ 8๊ฐ ๊ธ์๊ฐ ์๋ค๊ณ ํด์ k8s ๋ผ๊ณ ์ค์ฌ์ฐ๊ธฐ๋ ํ๋ค.
- k8s ๋ ๋์ปค์ ๋ค๋ฅด๊ฒ ์ฌ๋ฌ ๋์ ๋ฌผ๋ฆฌ์ ์๋ฒ๊ฐ ์กด์ฌํ๋๊ฒ์ ์ ์ ๋ก ํ๋ค.
- ๋ฒ๊ฑฐ๋กญ๊ณ ๋ฐ๋ณต์ ์ธ ์ปจํ ์ด๋ ์์ฑ๊ณผ ๊ด๋ฆฌ์ ์๊ณ ๋ฅผ ๋์ด์ฃผ๋ ๋๊ตฌ์ด๋ค.
SECTION 02 ๋ง์คํฐ ๋ ธ๋์ ์์ปค ๋ ธ๋
ํด๋ฌ์คํฐ์ ๊ตฌ์ฑ - ๋ง์คํฐ ๋ ธ๋์ ์์ปค ๋ ธ๋
- ์ฟ ๋ฒ๋คํฐ์ค๋ ์ ์ฒด์ ์ธ ์ ์ด๋ฅผ ๋ด๋นํ๋ ๋ง์คํฐ ๋ ธ๋, ์ค์ ์ ์ธ ๋์์ ๋ด๋นํ๋ ์์ปค ๋ ธ๋ ๋ ๊ฐ์ง๋ก ๊ตฌ์ฑ๋๋ค.
- ๋ง์คํฐ ๋ ธ๋์์ ์ปจํ ์ด๋๋ฅผ ์คํํ์ง๋ ์์ผ๋ฉฐ, ์์ปค ๋ ธ๋์์ ์คํ๋๋ ์ปจํ ์ด๋๋ฅผ ๊ด๋ฆฌํ๋ ์ญํ ์ ํ๋ค.
- ์์ปค ๋ ธ๋๋ ์ค์ ์ปจํ ์ด๋๊ฐ ๋์ํ๋ ์๋ฒ์ด๋ค.
- ๋ง์คํฐ ๋ ธ๋์ ์์ปค ๋ ธ๋๋ก ๊ตฌ์ฑ๋ ์ฟ ๋ฒ๋คํฐ์ค ์์คํ ์ ํด๋ฌ์คํฐ ๋ผ๊ณ ํ๋ค.
์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ์ํํธ์จ์ด
- ๋์ปค ์์ง ๋ฑ์ ์ปจํ ์ด๋ ์์ง๊ณผ๋ ๋ณ๊ฐ์ ์ํํธ์จ์ด
- CNI(๊ฐ์ ๋คํธ์ํฌ ๋๋ผ์ด๋ฒ) ๋ฅผ ์ค์นํด์ผ ๋๋ฉฐ ๋ํ์ ์ผ๋ก flannel, Calico, AWS VPC CNI ๋ฑ์ด ์กด์ฌ.
- ๋ง์คํฐ ๋ ธ๋์๋ ์ปจํ ์ด๋ ๋ฑ์ ์ํ ๊ด๋ฆฌ๋ฅผ ์ํด etcd(Key-Value ํํ์ DB) ๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์น๋จ.
- ์์ปค ๋ ธ๋์๋ ์ปจ์ํฐ๋ ์์ง ํ์.
์ปจํธ๋กค ํ๋ ์ธ๊ณผ kube-let
- ๋ง์คํฐ ๋ ธ๋๋ ์ปจํธ๋กค ํ๋ ์ธ์ ํตํด ์์ปค ๋ ธ๋๋ฅผ ๊ด๋ฆฌํ๋ค.
ํญ๋ชฉ ๋ด์ฉ
ํญ๋ชฉ | ๋ด์ฉ |
kube-apiserver | ์ธ๋ถ์ ํต์ ํ๋ ํ๋ก์ธ์ค, kubectl๋ก ๋ถํฐ ๋ช ๋ น์ ์ ๋ฌ๋ฐ์ ์คํํ๋ค. |
kube-controller-manager | ์ปจํธ๋กค๋ฌ๋ฅผ ํตํฉ ๊ด๋ฆฌ, ์คํ. |
kubel-scheduler | ํ๋๋ฅผ ์์ปค ๋ ธ๋์ ํ ๋นํ๋ค. |
cloud-controller-manager | ํด๋ผ์ฐ๋ ์๋น์ค์ ์ฐ๋ํด ์๋น์ค๋ฅผ ์์ฑํ๋ค. |
etcd | ํด๋ฌ์คํฐ ๊ด๋ จ ์ ๋ณด ์ ๋ฐ์ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค |
- ์์ปค ๋ ธ๋์์๋ kube-let ๊ณผ kube-proxy ๊ฐ ๋์ํ๋ค.
ํญ๋ชฉ ๋ด์ฉ
ํญ๋ชฉ | ๋ด์ฉ |
kube-let | ๋ง์คํฐ ๋
ธ๋์ ์๋ kube-scheduler ์ ์ฐ๋ํ๋ฉฐ ์์ปค ๋
ธ๋์ ํ๋๋ฅผ ๋ฐฐ์นํ๊ณ ์คํํ๋ค. ์คํ ์ค์ธ ํ๋์ ์ํ๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ๋ฉฐ kube-scheduler ์ ํต์งํ๋ค. |
kube-proxy | ๋คํธ์ํฌ ํต์ ์ ๋ผ์ฐํ ๋งค์ปค๋์ฆ |
etcd์ ์ญํ Docker Compose ์ k8s ์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ k8s ์ ์ ์ ํ์ผ(๋งค๋ํ์คํธ ํ์ผ)์ด DB ๋ฅผ ํตํด ๊ด๋ฆฌ ๋๋ค๋ ์ ์ด๋ค.
ํ๋๋ DB ์ ์ ์ฅ๋ ๋ด์ฉ์ ํ ๋๋ก ๊ด๋ฆฌ๋๋ฉฐ, ํด๋น ๋ด์ฉ์ k8s ์ปค๋งจ๋๋ก ์์ ์ด ๊ฐ๋ฅํ๋ค.
์ฟ ๋ฒ๋คํฐ์ค๊ฐ ์ ์ ํ์ผ์ ์ฝ์ด๋ค์ธ ํ ์ปค๋งจ๋๋ก ์ง์ ์ปจํ ์ด๋๋ฅผ ์์ ํ๊ฒ ๋๋ฉด, ์ ์ ํ์ผ๊ณผ etcd ์ ์ ์ฅ๋ ์ ๋ณด๊ฐ ์ผ์นํ์ง ์๊ฒ ๋๋ค. ๋ฐ๋ผ์, ์ด์ ๊ท์น์ ์ ํ๊ณ ์ฒ ์ ํ ๊ด๋ฆฌํด์ผ ํ๋ค.
SECTION 03 ์ฟ ๋ฒ๋คํฐ์ค์ ๊ตฌ์ฑ๊ณผ ๊ด๋ จ ์ฉ์ด
ํ๋(Pod)
- ์ฟ ๋ฒ๋คํฐ์ค์์ ์ปจํ ์ด๋์ ๊ด๋ฆฌ ๋จ์.
- ํ๋๋ ์ปจํ ์ด๋์ ๋ณผ๋ฅจ์ ํจ๊ป ๋ฌถ์ ๊ฒ.
- ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ ํ๋๊ฐ ์ปจํ ์ด๋ ํ๋, ์ปจํ ์ด๋๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ํ๋๋ ์กด์ฌ.
์๋น์ค(Service)
- ์ฌ๋ฌ๊ฐ์ ํ๋๋ค์ ๋ชจ์ ๊ด๋ฆฌํ๋ ๊ฒ.
- ์๋น์ค๊ฐ ๊ด๋ฆฌํ๋ ํ๋๋ ๋ชจ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ผํ ๊ตฌ์ฑ์ ๊ฐ๋๋ค.
- ๊ตฌ์ฑ์ด ๋ค๋ฅธ ํ๋๋ ๋ณ๋์ ์๋น์ค๋ก ๊ด๋ฆฌํ๋ค.
- ํ๋๊ฐ ์ฌ๋ฌ ๊ฐ์ ์์ปค ๋ ธ๋(๋ฌผ๋ฆฌ์ ์๋ฒ)์ ๊ฑธ์ณ ์๋๋ผ๋ ์ด๋ค ๋ชจ๋๋ฅผ ๊ด๋ฆฌ.
- ์๋น์ค์ ์ญํ ์ ๋ก๋ ๋ฐธ๋ฐ์(๋ถํ ๋ถ์ฐ์ฅ์น).
- ๊ฐ ์๋น์ค๋ ๊ณ ์ ๋ IP(Cluster IP) ๋ฅผ ๋ถ์ฌ ๋ฐ์ผ๋ฉฐ, ํด๋น IP๋ก ๋ค์ด์ค๋ ํต์ ์ ์ฒ๋ฆฌ.
- ํด๋น Cluster IP ๋ ์๋น์ค๋ฅผ ๋ช ์์ ์ผ๋ก ์ญ์ ํ์ง ์๋ ํ ๋ณ๊ฒฝ๋์ง ์์.
- ๋ฐ๋ผ์, ๋ด๋ถ์ ์ผ๋ก๋ ์ฌ๋ฌ๊ฐ์ ํ๋๊ฐ ์กด์ฌํ๊ณ ์ธ๋ถ์ ์ผ๋ก๋ Cluster IP ํ๋๋ง์ ๋ฐ๋ผ๋ณด๊ฒ ๋์ด, ๋ถํ ๋ถ์ฐ์ฒ๋ฆฌ๋ฅผ ๋ด๋น.
- ํ์ง๋ง, ์ฌ๋ฌ ์์ปค ๋ ธ๋๊ฐ์ ๋ถํ ๋ถ์ฐ์ ๋ณ๋์ ๋ ธ๋์์ ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ๋ด๋นํด์ผ ํ ์ญํ .
๋ ํ๋ฆฌ์นด์ธํธ(ReplicaSet)
- ๋ ํ๋ฆฌ์นด์ธํธ๋ ํ๋์ ์๋ฅผ ๊ด๋ฆฌ.
- ์ฅ์ ๋ฑ์ ์ด์ ๋ก ํ๋๊ฐ ์ข ๋ฃ๋์ ๋, ํ๋๋ฅผ ์คํ.
- ์ ์ ํ์ผ์ ํ๋ ์๊ฐ ๋ณ๊ฒฝ๋์์ ๊ฒฝ์ฐ ํ๋ ์๋ฅผ ์กฐ์ .
- ๋ ํ๋ฆฌ์นด์ธํธ๊ฐ ๊ด๋ฆฌํ๋ ๋์ผํ ๊ตฌ์ฑ์ ํ๋๋ฅผ ๋ ํ๋ฆฌ์นด(Replica) ๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
๋ํ๋ก์ด๋จผํธ(Deployment)
- ํ๋์ ๋ฐฐํฌ๋ฅผ ๊ด๋ฆฌํ๋ ์์.
- ํ๋๊ฐ ์ฌ์ฉํ๋ ์ด๋ฏธ์ง ๋ฑ์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ๊ณ ์์.
- ๋ ํ๋ฆฌ์นด์ธํธ ์ ๋ํ๋ก์ด๋จผํธ ํจ๊ป ์ฌ์ฉ
์ค๋ธ์ ํธ์ ์ธ์คํด์ค ๊ฐ๊ฐ์ ํ๋, ์๋น์ค ๋ฑ์ ‘OO ์ค๋ธ์ ํธ’ ๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค. ๊ทธ ์ด์ ๋ ๋ง์คํฐ ๋ ธ๋์ etcd ์์ OO ์ค๋ธ์ ํธ ํํ๋ก ๊ด๋ฆฌ๋๊ธฐ ๋๋ฌธ. ์ฟ ๋ฒ๋คํฐ์ค๋ etcd ์ ๋ฑ๋ก๋ ์ค๋ธ์ ํธ๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ฉฐ ์ด๊ฒ์ ์ธ์คํด์ค ๋ผ๊ณ ํ๋ค.
SECTION 04 ์ฟ ๋ฒ๋คํฐ์ค ์ค์น ๋ฐ ์ฌ์ฉ๋ฒ
- ์์กฐ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ฑํํ๋๊ฒ ์์ฒด๋ ๊ฝค ํํ์ง๋ง, ์ด๋ฅผ ์ง์ ๊ตฌ์ถํ๋๊ฒ์ ์ฝ์ง์๋ค.
- ๋๋ผ์ด๋ฒ ์์ฑ ๋ฌธ์ , ํ๋์จ์ด ์ ์ ๋ถํฐ ๊ณ ๋ คํด์ผ ๋ ๊ฒ๋ค์ด ์๋นํ ๋ง๋ค.
- ์ผ๋ฐ์ ์ผ๋ก AWS EKS ๊ฐ์ ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ์ด์ฉํ๋ ๊ฒฝ์ฐ๋ ๋ง๋ค.
- Docker Desktop, Mini Kube ๋ฑ์ ์ฌ์ฉํ๋ฉด ์ฟ ๋ฒ๋คํฐ์ค ํ์ต ํ๊ฒฝ์ผ๋ก ์ถฉ๋ถํ๋ค.
Linux์ MiniKube ์ค์นํ๊ธฐ
SECTiON 05 ๋งค๋ํ์คํธ(manifest) ํ์ผ ์์ฑ
- ํ๋๋ ์๋น์ค์ ๋ํ ์ค์ ์ ๋งค๋ํ์คํธ(manifest) ๋ผ๊ณ ํ๋ค.
- ๋งค๋ํ์คํธ ํ์ผ์ YAML ๋๋ JSON ํ์์ผ๋ก ๊ธฐ์ฌํ๋ค.
- JSON ํ์์ ์ปดํจํฐ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๋ชฉ์ ์ด๋ฏ๋ก, ์ฌ๋์ด ์ค์ ํ์ผ์ ์ฝ๊ณ ์ด๋ค๋ฉด YAML ํ์ผ์ ์ฃผ๋ก ์ฌ์ฉ.
- ๋งค๋ํ์คํธ ํ์ผ์ ๋ฆฌ์์ค ๋จ์๋ก ์์ฑํ๋ค.
- ๋ฆฌ์์ค ๋จ์๋ ํ๋, ์๋น์ค, ๋ํ๋ก์ด๋จผํธ, ๋ ํ๋ฆฌ์นด์ธํธ ๋ฑ์ ๊ฐ๋ฅดํจ๋ค.
Pod manifest.yml
apiVersion: v1
kind: Pod
metadata:
name: apa000pod
labels:
app: apa000kube
spec:
containers:
- name: apa000ex91
image: httpd
ports:
- containerPort: 80
Deployment manifest.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: apa000dep
spec:
selector:
matchLabels:
app: apa000kube
replicas: 3
template:
metadata:
labels:
app: apa000kube
spec:
containers:
- name: apa000ex91
image: httpd
ports:
- containerPort: 80
- selecetor ์ค์
- ๋ํ๋ก์ด๋จผํธ๊ฐ ํน์ ํ ๋ ์ด๋ธ์ด ๋ถ์ฌ๋ ํ๋๋ฅผ ๊ด๋ฆฌํ ์ ์๋๋ก ํ๋ ์ค์ .
- matchLabels: ๋ค๋ก ๋ ์ด๋ธ์ ๊ธฐ์ฌ.
- replica ์ค์
- ํ๋์ ๋ ํ๋ฆฌ์นด์ ๋ํ ๊ด๋ฆฌ.
- ํ๋ ์๋ฅผ ๋ช๊ฐ๋ก ์ ์งํ ๊ฒ์ธ์ง ์ค์ .
- ์ด ๊ฐ์ 0์ผ๋ก ์ค์ ํ๋ฉด ํ๋๊ฐ ์ฌ๋ผ์ง๋ค.
- template ์์ฑ
- ์์ฑํ ํ๋์ ์ ๋ณด๋ฅผ ๊ธฐ์ฌ.
Service manifest.yml
apiVersion: v1
kind: Service
metadata:
name: apa000ser
spec:
type: NodePort
ports:
- port: 8099
targetPort: 80
protocol: TCP
nodePort: 30080
selector:
app: apa000kube
- type ์ค์
- ์ด๋ค ์ ํ์ IP ์ฃผ์๋ก ์ ๊ทผํ ์ง ์ค์ .
- ClusterIP: ํด๋ฌ์คํฐ IP๋ฅผ ํตํด ์๋น์ค์ ์ ๊ทผํ๋๋ก ํจ(์ธ๋ถ์์๋ ์ ๊ทผ ๋ถ๊ฐ)
- NodePort: ์์ปค ๋ ธ๋์ IP๋ฅผ ํตํด์ ์๋น์ค์ ์ ๊ทผํ๋๋ก ํจ
- LoadBalancer: ๋ก๋๋ฐธ๋ฐ์์ IP ๋ฅผ ํตํด์ ์๋น์ค์ ์ ๊ทผํ๋๋ก ํจ (์ค๋ฌด์์ ๊ฐ์ฅ ๋ง์ด ์ฐ์)
- ExternalName: ํ๋์์ ์๋น์ค๋ฅผ ํตํด ์ธ๋ถ๋ก ๋๊ฐ๊ธฐ ์ํ ์ค์ .
- ํฌํธ ์ค์
- ํต์ IP์ port๋ฅผ ์ง์ .
- port: ์๋น์ค์ ํฌํธ
- nodePort: ์์ปค ๋ ธ๋์ ํฌํธ (30000 ๊ณผ 32767 ์ฌ์ด์ ๊ฐ์ ์ค์ ๊ฐ๋ฅ)
- targetPort: ์ปจํ ์ด๋ ํฌํธ
- selector ์ค์
- ์๋น์ค๊ฐ ํน์ ๋ ์ด๋ธ์ด ๋ถ์ฌ๋ ํ๋๋ฅผ ์ ํ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ์ค์ .
- ๋ ์ด๋ธ์ ํ๋๋ ๋ํ๋ก์ด๋จผํธ์์ ์ปจํ ์ด๋ ๋ถ๋ถ์ ์ค์ ์ด ์ง์ ๋ ๋ ์ด๋ธ์ ์ฌ์ฉ.
- ๋ค๋ง, ๋ํ๋ก์ด๋จผํธ์์๋ matchLables: ๊ฐ ํ์ ํญ๋ชฉ์ธ๋ฐ, ์๋น์ค์์๋ matchLabels: ๋ฅผ ์์ฉํด์๋ ์๋๋ค.
SECTION 06 ์ฟ ๋ฒ๋คํฐ์ค ๋ช ๋ น์ด
๋ช ๋ น์ด ์ค๋ช ์์
๋ช ๋ น์ด | ์ค๋ช | ์์ |
kubectl get nodes | ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋ ธ๋ ์ ๋ณด๋ฅผ ์กฐํ | kubectl get nodes |
kubectl get pods | ๋ค์์คํ์ด์ค ๋ด์ ๋ชจ๋ ํ๋ ์กฐํ | kubectl get pods -n my-namespace |
kubectl describe pod [POD_NAME] | ํน์ ํ๋์ ๋ํ ์์ธ ์ ๋ณด ์กฐํ | kubectl describe pod my-pod |
kubectl logs [POD_NAME] | ํน์ ํ๋์ ๋ก๊ทธ๋ฅผ ์กฐํ | kubectl logs my-pod |
kubectl exec -it [POD_NAME] -- [COMMAND] | ํ๋ ๋ด๋ถ์์ ๋ช ๋ น์ด ์คํ | kubectl exec -it my-pod -- /bin/sh |
kubectl create -f [FILE] | YAML ํ์ผ๋ก ๋ฆฌ์์ค ์์ฑ | kubectl create -f deployment.yaml |
kubectl apply -f [FILE] | YAML ํ์ผ๋ก ๋ฆฌ์์ค๋ฅผ ์์ฑ ๋๋ ์ ๋ฐ์ดํธ | kubectl apply -f service.yaml |
kubectl delete -f [FILE] | YAML ํ์ผ์ ์ ์๋ ๋ฆฌ์์ค ์ญ์ | kubectl delete -f pod.yaml |
kubectl delete pod [POD_NAME] | ํน์ ํ๋ ์ญ์ | kubectl delete pod my-pod |
kubectl scale deployment [DEPLOYMENT_NAME] --replicas=[COUNT] | ๋ฐฐํฌ๋ ๋ฆฌ์์ค์ ๋ณต์ ๋ณธ ์ ์กฐ์ | kubectl scale deployment my-deployment --replicas=3 |
kubectl get services | ๋ค์์คํ์ด์ค ๋ด์ ๋ชจ๋ ์๋น์ค ์กฐํ | kubectl get services |
kubectl port-forward [POD_NAME] [LOCAL_PORT]:[REMOTE_PORT] | ๋ก์ปฌ์์ ์๊ฒฉ ํ๋๋ก ํฌํธ ํฌ์๋ฉ | kubectl port-forward my-pod 8080:80 |
kubectl get namespaces | ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋ค์์คํ์ด์ค ์กฐํ | kubectl get namespaces |
kubectl config get-contexts | ๋ชจ๋ ์ปจํ ์คํธ ๋ชฉ๋ก ์กฐํ | kubectl config get-contexts |
kubectl config use-context [CONTEXT_NAME] | ํน์ ์ปจํ ์คํธ๋ก ์ ํ | kubectl config use-context minikube |
kubectl rollout status deployment/[DEPLOYMENT_NAME] | ๋ฐฐํฌ ์ํ ํ์ธ | kubectl rollout status deployment/my-deployment |
kubectl expose pod [POD_NAME] --type=[TYPE] --port=[PORT] | ํ๋๋ฅผ ์๋น์ค๋ก ๋ ธ์ถ | kubectl expose pod my-pod --type=NodePort --port=8080 |
kubectl apply -f . | ํ์ฌ ๋๋ ํฐ๋ฆฌ์ ๋ชจ๋ YAML ํ์ผ์ ์ ์ฉ | kubectl apply -f . |
์ค์ต
๋ํ๋ก์ด๋จผํธ ๋งค๋ํ์คํธ ์ ์ฉ
$ kubectl apply -f apa000dep.yml
deployment.apps/apa000dep created
ํ๋ ํ์ธ
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
apa000dep-5655dc7c86-9sv4z 1/1 Running 0 67s
apa000dep-5655dc7c86-k4d2w 1/1 Running 0 67s
apa000dep-5655dc7c86-wg2k2 1/1 Running 0 67s
์๋น์ค ๋งค๋ํ์คํธ ์๋น์ค ์์ฑ
$ kubectl apply -f apa000ser.yml
service/apa000ser created
์๋น์ค ํ์ธ
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
apa000ser NodePort 10.108.135.113 <none> 8099:30080/TCP 5m23s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 125m
SECTION 07 ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ฐ์ตํ์
$ vi apa000dep.yml
replicas: 5 // ์์
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
apa000dep-5655dc7c86-2s89t 1/1 Running 0 48s
apa000dep-5655dc7c86-k4d2w 1/1 Running 0 6m12s
apa000dep-5655dc7c86-lh4qf 1/1 Running 0 6s
apa000dep-5655dc7c86-wg2k2 1/1 Running 0 6m12s
apa000dep-5655dc7c86-zt9lv 1/1 Running 0 48s
$ kubectl delete apa000dep-5655dc7c86-2s89t
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
apa000dep-5655dc7c86-9sv4z 1/1 Running 0 48s
apa000dep-5655dc7c86-k4d2w 1/1 Running 0 6m12s
apa000dep-5655dc7c86-lh4qf 1/1 Running 0 6s
apa000dep-5655dc7c86-wg2k2 1/1 Running 0 6m12s
apa000dep-5655dc7c86-zt9lv 1/1 Running 0 48s
$ vi apa000dep.yml
imgage : nginx // apache -> ngnix ์์
$ kubectl apply -f apa000dep.yml
$ kubectl delete -f apa000dep.yml
deployment.apps "apa000dep" deleted
$ kubectl get deployment
No resources found in default namespace.
$ kubectl delete -f apa000ser.yml
service "apa000ser" deleted
$ kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 131m