Kubernetes Service(4): envoy overview
- kkumtree
2024-10-15T10:16:38+09:00
๋ฐ๋ก ์ฅ ์ฐพ์๋ณด๋, envoy๋ Micro Service Architecture ๋ฑ ๊ตฌํ๋ ๋จ์ ๊ธฐ๋ฅ๊ฐ์ ํต์ ์ ์ํ L7 Proxy ๋ผ๊ณ ํฉ๋๋ค.
Docker Compose ์ ๋๋ ์ผ๋ฐ ์๋น์ค์์๋ ๊ตณ์ด ํ์ํ์ง๋ ์์ ๊ฒ ๊ฐ์ง๋ง, Service Mesh ํ๊ฒฝ์์๋ ์์๋๋ฉด ์ข์ ๊ฒ ๊ฐ์ ํ์ด๋ด ๋๋ค.
CloudNet@์์ ์งํํ๊ณ ์๋ K8s Advanced Network Study(์ดํ, KANS)๋ฅผ ํตํด ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
1. Envoy Installation
- Docs: Installing Envoy
wget -O- https://apt.envoyproxy.io/signing.key | sudo gpg --dearmor -o /etc/apt/keyrings/envoy-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/envoy-keyring.gpg] https://apt.envoyproxy.io jammy main" | sudo tee /etc/apt/sources.list.d/envoy.list
sudo apt-get update
sudo apt-get install envoy
envoy --version
ํ์ตํ๊ฒฝ์ root๋ก ์ ์๋์ด ์๊ธฐ์ sudo๋ ์ฐ์ง ์์์ต๋๋ค.
Kubernetes Service(3): Ingress(ingress-nginx) w/k3s
- kkumtree
2024-10-10T22:12:57+09:00
์ง๋ ํฌ์คํ , Kubernetes Service(2): LoadBalancer(MetalLB)์ ์ด์ด Ingress Type์ ๊ฐ๋ณ๊ฒ ์ดํด๋ณด๊ณ , Ingress-Nginx๋ฅผ ๊ฐ๋ณ๊ฒ ๋ถ์ฌ๋ณด๊ฒ ์ต๋๋ค.
CloudNet@์์ ์งํํ๊ณ ์๋ K8s Advanced Network Study(์ดํ, KANS)๋ฅผ ํตํด ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
1. Ingress Type
์ด์ , ์ ๊ท ๊ธฐ๋ฅ(New feature)์
Gateway API์ ์ถ๊ฐ๋๋ค๊ณ ํฉ๋๋ค.
์ฐ์ , Kubernetes๊ฐ ํท๊ฐ๋ฆฌ๋ ๊ฒ ์ค ํ๋๊ฐ,
Ingress Type ๊ณผ LoadBalancer Type์ ๋ช ํํ ์ฐจ์ด๊ฐ ๋ญ๊น...?
๋ผ๋ ์ ์ด๋ผ๊ณ ๋ด ๋๋ค.
๋ฌผ๋ก , ๊ทธ๊ฑฐ ์ธ์๋ k8s์๋ ์์ญ๋ฌ์ญํ ๊ฒ๋ค์ด ์-์ฃผ ๋ง์ง๋ง์.
์น์ ํ Docs์ ๋ฐ๋ฅด๋ฉด,
ํด๋ฌ์คํฐ ์ธ๋ถ๋ก ํด๋ฌ์คํฐ ๋ด๋ถ ์๋น์ค์ ๋ํ HTTP ๋ฐ HTTPS ๋ผ์ฐํ
์ ๋
ธ์ถํ๋ ๊ฒ์ด๋ผ๊ณ ํฉ๋๋ค.
Kubernetes Service(2): LoadBalancer(MetalLB)
- kkumtree
2024-10-02T12:54:17+09:00
์ง๋ ํฌ์คํ , Kubernetes Service(1): ClusterIP/NodePort์ ์ด์ด LoadBalancer Type์ ๊ฐ๋ณ๊ฒ ์ดํด๋ณด๊ณ , MetalLB๋ฅผ ๊ฐ๋ณ๊ฒ ๋ถ์ฌ๋ณด๊ฒ ์ต๋๋ค.
CloudNet@์์ ์งํํ๊ณ ์๋ K8s Advanced Network Study(์ดํ, KANS)๋ฅผ ํตํด ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
1. LoadBalancer Type
Service(1)์์ ์ธ๊ธ๋ ๋ถ๋ถ์ ๊ฑฐ๋์ ๋ฏธํ๊ณ , ์ถ๊ฐ๋ก ์ ์ ์ ์๋ ๋ถ๋ถ์ด ์๋ค๋ฉด, ์๋ ํ ์ค์ด ์์ต๋๋ค.
You can define a LoadBalancer Service by disabling the load balancer NodePort allocation.
๊ธ์ ๊ทธ๋๋ก LB์ NodePort ํ ๋น์ ๋นํ์ฑํ์ฌ, LoadBalancer Service๋ฅผ ์ ์ํ ์ ์์ต๋๋ค.
Disabling load balancer NodePort allocation ๋ฌธ์๋ฅผ ์ดํด๋ณด๋,
v1.24๋ถํฐ Stable ์ํ๋ก ๋ณด์
๋๋ค.
iptables monitoring with Grafana (Not Completed)
- kkumtree
2024-09-29T13:35:13+09:00
iptables๋ฅผ ์์งํ์ฌ Grafana๋ก ํํํ๋ ๋ฐฉ๋ฒ์ ์์๋ด ๋๋ค.
CloudNet@์์ ์งํํ๊ณ ์๋ K8s Advanced Network Study(์ดํ, KANS)๋ฅผ ํตํด ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
0. ํ๊ฒฝ ๊ตฌ์ฑ (kind)
์์ฑ์๊ฐ ์ด์๋ก featureGates, ConfigPatches, networking ์ค์ ์ค๋ช ์ ์คํต…ํฉ๋๋ค.
a. 1 Master, 3 Slave ํ๊ฒฝ ๊ตฌ์ฑ
cat <<EOT> kind-svc-1w.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
featureGates:
"InPlacePodVerticalScaling": true
"MultiCIDRServiceAllocator": true
nodes:
- role: control-plane
labels:
mynode: control-plane
topology.kubernetes.io/zone: ap-northeast-2a
extraPortMappings:
- containerPort: 30000
hostPort: 30000
- containerPort: 30001
hostPort: 30001
- containerPort: 30002
hostPort: 30002
kubeadmConfigPatches:
- |
kind: ClusterConfiguration
apiServer:
extraArgs:
runtime-config: api/all=true
controllerManager:
extraArgs:
bind-address: 0.0.0.0
etcd:
local:
extraArgs:
listen-metrics-urls: http://0.0.0.0:2381
scheduler:
extraArgs:
bind-address: 0.0.0.0
- |
kind: KubeProxyConfiguration
metricsBindAddress: 0.0.0.0
- role: worker
labels:
mynode: worker1
topology.kubernetes.io/zone: ap-northeast-2a
- role: worker
labels:
mynode: worker2
topology.kubernetes.io/zone: ap-northeast-2b
- role: worker
labels:
mynode: worker3
topology.kubernetes.io/zone: ap-northeast-2c
networking:
podSubnet: 10.10.0.0/16
serviceSubnet: 10.200.1.0/24
EOT
kind create cluster --config kind-svc-1w.yaml --name myk8s --image kindest/node:v1.31.0
b. ๊ธฐ๋ณธ ํด ์ค์น
docker exec -it myk8s-control-plane sh -c 'apt update && apt install tree psmisc lsof wget bsdmainutils bridge-utils net-tools ipset ipvsadm nfacct tcpdump ngrep iputils-ping arping git vim arp-scan -y'
1. prometheus stack ์ค์น (helm)
a. repository ์ถ๊ฐ ๋ฐ ๊ตฌ์ฑ
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
cat <<EOT > monitor-values.yaml
prometheus:
prometheusSpec:
podMonitorSelectorNilUsesHelmValues: false
serviceMonitorSelectorNilUsesHelmValues: false
nodeSelector:
mynode: control-plane
tolerations:
- key: "node-role.kubernetes.io/control-plane"
operator: "Equal"
effect: "NoSchedule"
grafana:
defaultDashboardsTimezone: Asia/Tokyo
adminPassword: kans7969
service:
type: NodePort
nodePort: 30002
nodeSelector:
mynode: control-plane
tolerations:
- key: "node-role.kubernetes.io/control-plane"
operator: "Equal"
effect: "NoSchedule"
defaultRules:
create: false
alertmanager:
enabled: false
EOT
b. ์ค์น
kubectl create ns monitoring
helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack --version 62.3.0 -f monitor-values.yaml --namespace monitoring
c. prometheus ์ฝ์ ์ ์
์๋ก์ด ํฐ๋ฏธ๋์ ์ด์ด, port-forwarding์ ํตํด ์ ์ํฉ๋๋ค.
Kubernetes Service(1): ClusterIP/NodePort
- kkumtree
2024-09-27T21:28:17+09:00
Kubernetes์ (์ปจ์ , ํน์ ์ฝ์ ํธ๋ผ ๋ถ๋ฆฌ๋) Concepts ์ค์์ Service์ ์ฃผ์ ๋ฅผ ๋ค๋ค๋ด ๋๋ค.
CloudNet@์์ ์งํํ๊ณ ์๋ K8s Advanced Network Study(์ดํ, KANS)๋ฅผ ํตํด ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
Service Docs์ ๋ช
๋ฃํ๊ฒ ์ ํ์๊ธด ํ์ง๋ง,
๋จ์ ๊ธฐ๋ฅ์ผ๋ก ์๊ฒ ์ชผ๊ฐ Pod๋ ๊ฒฐ๊ตญ ๊ฐ๋ณ์ ์ธ IP๋ฅผ ๊ฐ๊ฒ๋๋๋ฐ, Blue/Green ์ด๋ฏธ์ง ์
๋ฐ์ดํธ๋ฅผ ๋น๋กฏํด์ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ ์๋ก์ด Pod์ IP๋ฅผ ๋ค๋ฅธ Pod๊ฐ IP์ฃผ์ ๊ทธ๋๋ก ์ ๊ทผํ๊ธฐ ์ด๋ ค์ ์ค๊ฐ์ ๋ ๊ฒ์ผ๋ก ์ดํด๋ฅผ ํด๋ณด์์ต๋๋ค.
์ง๊ธ ๋ ๋ฒจ์์๋ ๊ฐ์ ์ฉ ๊ณต์ ๊ธฐ์์ ๋์ IP ํ๊ฒฝ์ ๋์ํ๊ธฐ ์ํด, DDNS๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ, MAC ADDR ๊ธฐ์ค์ผ๋ก Static IP(DHCP๋ชจ๋์ ํ์ฉ)๋ฅผ ์์ฝํ๋ ๊ฒ์ ์์ ๊ทธ ์ด๋๊ฐ๋ก ๋ฉ๋ํ๊ณ ๊ณ์ ์จ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
Calico Installation in Operator Mode
- kkumtree
2024-09-18T20:52:16+09:00
CloudNet@์์ ์งํํ๊ณ ์๋ K8s Advanced Network Study(์ดํ, KANS)๋ฅผ ํตํด ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
์คํฐ๋ ์งํ ์, Manifests๋ฅผ ์ฌ์ฉํ์ฌ Calico๋ฅผ ์ค์นํ์์ผ๋,
Operator๋ฅผ ์ฌ์ฉํ์ฌ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํฉ๋๋ค.
๊ณผ์ ๋ ์๋์์ง๋ง, ์์ ๋ค๋ค Operator Framework๋ฅผ ์ฌ์ฉํด์ ๋ง๋ผ์น๊ถ ๋ณถ๋ฏ์ด
Operator๋ฅผ ์ง์ง๊ณ ๋ณถ๋ ๊ฒ ๊ฐ์์ ํธ๊ธฐ์ฌ์ ์ ๋ฆฌํด๋ณด์์ต๋๋ค.
์ฐธ๊ณ ๋ก Manifests๋ฅผ ์ฌ์ฉํ์ฌ ์ค์น ์, 50๊ฐ์ ๋ ธ๋[1]๋ฅผ ์ด๊ณผํ๋ ๊ฒฝ์ฐ Typha๋ฅผ ๊ตฌ์ฑํ์ฌ์ผ ํฉ๋๋ค.
Calico ์ค์น ํ๊ฒฝ : AWS EC2(No EKS), kubeadm[2], pod-network-cidr=172.16.0.0/16, IPIP Mode
1. Calico Routing Mode
์์ ์ธ๊ธ๋ IPIP Mode๋ฅผ ์ดํดํ๋ ค๋ฉด Calico์ Routing Mode๋ฅผ ํ์ ํ์์ฑ์ด ์์์ต๋๋ค.
ํ๋๊ฐ ํต์ ์ ๋
ธ๋ ๊ฐ์ encapsulation์ ์ ๋ต์ ๊ธฐ์ค์ผ๋ก ๋๋์ด ๋ณผ ์ ์๊ฒ ์ต๋๋ค.
Calico ๋ฐ ๋ฉํธ๋ฆญ ์์ง ๊ตฌ์ฑ
- kkumtree
2024-09-15T18:40:22+09:00
CloudNet@์์ ์งํํ๊ณ ์๋ K8s Advanced Network Study(์ดํ, KANS)๋ฅผ ํตํด ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
1. Calico ์ค์น
์คํฐ๋์์ AWS CF ๋ฐ Calico ์ค์น ์คํฌ๋ฆฝํธ(Manifest)๋ฅผ ์ ๊ณตํ์๊ธฐ์, ์ด ๋ถ๋ถ์ ์ฐธ๊ณ ๋ง ํ์๊ธฐ ๋ฐ๋๋๋ค.
CNI๊ฐ ์ค์น๋์ง ์์๊ธฐ์ NotReady ์ํ์ ์๋ค๊ฐ, Calico ์ค์นํ๋ฉด CoreDNS๊ฐ ์ค์ ๋๋ฉฐ, Ready ์ํ๋ก ๋ณ๊ฒฝ๋๋ค.
-
Calico ์ค์น ์
# Control Plane and worker nodes are not ready (โ|HomeLab:default) root@k8s-m:~# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-m NotReady control-plane 32m v1.30.5 k8s-w0 NotReady <none> 31m v1.30.5 k8s-w1 NotReady <none> 31m v1.30.5 k8s-w2 NotReady <none> 31m v1.30.5 # Count for iptalbes rules for comparison (โ|HomeLab:default) root@k8s-m:~# iptables -t filter -L | wc -l 50 (โ|HomeLab:default) root@k8s-m:~# iptables -t nat -L | wc -l 48(โ|HomeLab:default) root@k8s-m:~# kubectl get pod -A --sort-by=.metadata.creationTimestamp NAMESPACE NAME READY STATUS RESTARTS AGE kube-system etcd-k8s-m 1/1 Running 0 35m kube-system kube-apiserver-k8s-m 1/1 Running 0 35m kube-system kube-controller-manager-k8s-m 1/1 Running 0 35m kube-system kube-scheduler-k8s-m 1/1 Running 0 35m kube-system coredns-55cb58b774-bscbt 0/1 Pending 0 35m kube-system coredns-55cb58b774-w22zq 0/1 Pending 0 35m kube-system kube-proxy-5hgmn 1/1 Running 0 35m kube-system kube-proxy-bnv77 1/1 Running 0 35m kube-system kube-proxy-xf8q7 1/1 Running 0 35m kube-system kube-proxy-hzsnk 1/1 Running 0 35m -
Calico ์ค์น ํ
KIND ํบ์๋ณด๊ธฐ
- kkumtree
2024-09-03T21:16:07+09:00
ํบ์๋ณด๋ค(์ฐ๋ฆฌ๋ง์) ๋ ์์ธ๋ก ํ์ค์ด๋ผ๊ณ ํฉ๋๋ค.
KIND ์ค์น ์ดํ์ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ์ ์ดํด๋ด ๋๋ค.
CloudNet@์์ ์งํํ๊ณ ์๋ K8s Advanced Network Study(์ดํ, KANS)๋ฅผ ํตํด ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
0. $KUBECONFIG
-
$KUBECONFIG ํ๊ฒฝ๋ณ์๊ฐ ์์ ๊ฒฝ์ฐ:
๋ณดํต์~/.kube๋๋ ํ ๋ฆฌ๊ฐ ์์ฑ๋ฉ๋๋ค.
ํ์ธํด๋ณด๋, config ๊ฐ๊ณผ ๋๋ถ์ด,cache๋๋ ํ ๋ฆฌ๋ ํ์ธํ ์ ์์์ต๋๋ค.โฏ find ~/.kube -maxdepth 2 -type f -exec ls -ld "{}" \; -rw------- 1 kkumtree kkumtree 44 Sep 3 21:31 /home/kkumtree/.kube/config โฏ find ~/.kube -maxdepth 2 -type d -exec ls -ld "{}" \; drwxr-x--- 3 kkumtree kkumtree 4096 Sep 3 21:31 /home/kkumtree/.kube drwxr-x--- 4 kkumtree kkumtree 4096 Sep 3 21:11 /home/kkumtree/.kube/cache drwxr-x--- 5 kkumtree kkumtree 4096 Sep 3 21:28 /home/kkumtree/.kube/cache/discovery drwxr-x--- 3 kkumtree kkumtree 4096 Sep 3 21:28 /home/kkumtree/.kube/cache/http -
KIND์ฉ $KUBECONFIG ์ค์ :
๊ทธ๋์ ์๋์ฒ๋ผ, ๊ฒฝ๋ก๋ฅผ ๋ง๋ค๊ณ $KUBECONFIG ํ๊ฒฝ๋ณ์๋ฅผ ์ค์ ํด์ฃผ์์ต๋๋ค.
๋ฆฌ๋ ์ค์ KIND ์ค์นํ๊ธฐ w/golang
- kkumtree
2024-09-02T00:33:19+09:00
Helm ์ค์น ์ถ๊ฐ
CloudNet@์์ ์งํํ๊ณ ์๋ K8s Advanced Network Study(์ดํ, KANS)์ ์ฐธ์ฌํ๊ฒ ๋๋ฉด์ ๊ธฐ๋ก์ ๋จ๊ธฐ๊ณ ์์ต๋๋ค.
์ด๋ฒ์๋ kind(Kubernetes IN Docker)๋ฅผ Golang์ ํตํด ์ค์นํ๋ฉด์ ์ฝ๊ฐ์ ์?๋์ด ์์๋ ๋ถ๋ถ๋ง ๋ค๋ฃน๋๋ค.
1. KIND๋?
- ์๋ ์ฌ์ง์ผ๋ก ๋์ฒดํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Docs/Initial_design์์ ๋ณผ์ ์์ต๋๋ค.

2. KIND ์ค์นํ๊ธฐ
- Docs/Quick-start๋ฅผ ์ฐธ๊ณ ํฉ๋๋ค.
Linux์ ๊ฒฝ์ฐ, ํจํค์ง ๊ด๋ฆฌ์ ์ค์น๊ฐ ์์ด ๋ฐ์ด๋๋ฆฌ, ํน์ ์์ค๋ก ์ค์นํด์ผ ํฉ๋๋ค.
์๋ ๋ ๋ฌธ์ฅ์ ๋ญ๊ฐ ๋ฐ๋ํ์ฌ Go ์ธ์ด๋ก ์ค์น๋ฅผ ํด๋ณด๊ธฐ๋ก ํ์ต๋๋ค.
If you are a go developer you may find the go install option convenient.
Otherwise we supply downloadable release binaries, community-managed packages, and a source installation guide.
3. ์ค์น๋ ๋งค์ฐ ๊ฐ๋จ
- Go ๊ฐ๋ฐ์๋ ์๋์ง๋ง, ์ ๊น๋ ค์์๊ณ ๊ทธ GOPATH ํ๊ฒฝ๋ณ์๋ ํ์ธ๋ฉ๋๋ค. ๋ฌด์จ์ผ์ด๋.
โฏ go version
go version go1.22.2 linux/amd64
โฏ go env GOPATH
/home/kkumtree/go
- Docs๋ฅผ ์ ์ฝ๊ณ , ์๋์ ๊ฐ์ด ์ค์นํ๋ฉด ๋ฉ๋๋ค.
go install sigs.k8s.io/[email protected]
4. ์ด๊ฑธ๋ก ๋ ์ผ๋ฆฌ๊ฐ ์๋ค. ํ๊ฒฝ๋ณ์ ์ค์
- ๊ทธ๋ฐ ๊ฑด ์กด์ฌํ์ง ์์ต๋๋ค. Go๋ฅผ ๊ฐ๋ฐ์ ์ฌ์ฉํด๋ณธ ์ ์ด ์์ผ๋ฉด ์๋์ฒ๋ผ Go ๋ฐ์ด๋๋ฆฌ๊ฐ PATH ํ๊ฒฝ๋ณ์์ ์ค์ ํฉ๋๋ค.
โฏ env | grep go
PATH=/home/kkumtree/go/bin:/home/kkumtree/.tfenv/bin:/home/kkumtree/.tfenv/bin:/home/kkumtree/.tfenv/bin:/home/kkumtree/.sdkman/candidates/java/current/bin:/home/kkumtree/.nvm/versions/node/v18.15.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
(a์) ~/.bashrc์ ์ ์ ์ง์
- ๋ณดํต ์ด๋ ๊ฒํ๋ฉด, ์ฌ์ฉํ๋๋ฐ ๋ณ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
echo 'export PATH=$PATH:/home/kkumtree/go/bin' >> ~/.bashrc
# zsh์ผ ๊ฒฝ์ฐ) exec bash
source ~/.bashrc
# zsh์ผ ๊ฒฝ์ฐ, ๋ค์ zsh๋ก ๋ณต๊ท) exec zsh
(b์) ~/.profile์ ๋์ ์ง์
- ๋ณ๋ค๋ฅธ ์ด์ ๋ ์๊ณ , profile์ ์กฐ๊ฑด ์ค์ ์ด ๋์ด์์ด์ ์ถ๊ฐํด๋ณด์์ต๋๋ค.
- ๋ง์ง๋ง 3์ค๋ง ์ถ๊ฐ๋ก ์์ฑ
# โฏ cat ~/.profile
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
# set PATH so it includes user's gopath if it exists
if [ -x "/usr/bin/go" ] && [ -d "$(/usr/bin/go env GOPATH)/bin" ] ; then
PATH="$(/usr/bin/go env GOPATH)/bin:$PATH"
fi
source ~/.profile๋ก ์ ์ฉํ ํ, kind version์ผ๋ก ์ค์น ํ์ธ.
Jenkins ์ปจํ ์ด๋์์ Host์ Docker ๋ฐ๋ชฌ ์ฌ์ฉํ๊ธฐ
- kkumtree
2024-09-01T09:02:15+09:00
์ต๊ทผ CloudNet@์์ ์งํํ๊ณ ์๋ K8s Advanced Network Study(์ดํ, KANS)์ ์ฐธ์ฌํ๊ฒ ๋์์ต๋๋ค.
๋์ด๋๋ฅผ ์๊ฐํ๋ฉด KH(Hardcore)NS๊ฐ ๋ ๋ง์๋ณด์ด์ง๋ง…
k8s๊ฐ ์๋ ์ธ๊ธฐ๊ฐ ๋ง๊ธฐ๋ ํ์ง๋ง, Pod ๊ฐ ํต์ ์๋ ๋ง์ ์ง์์ด ํฌ์ฌ๋๊ธฐ์ ์ด๋ฒ ๊ธฐํ์ ์ดํด๋ณด๊ธฐ๋ก ํ์ต๋๋ค.

์ฒซ ์ฃผ์ฐจ๋, ๋ฐ๋ก Kubernetes์ ์ง์
ํ์ง ์๊ณ Containerization์ ๋ํ ์ดํด๋ฅผ ๋จผ์ ๋ค๋ค์ฃผ์
จ์ต๋๋ค.
์ฌํ ์ฟ ๋ฒ๋คํฐ์ค ๊ฐ์์ ๋ฌ๋ฆฌ 9์ฃผ ๊ฐ ๋งค์ฃผ ์ผ์์ผ์๋ง ์งํ๋๋ ์ธ์
์ธ๋ฐ๋, ๊ธฐ๋ฐ ๊ธฐ์ ์ ๋ค์ ์ง์ด์ฃผ์
์ ๊ฐ์ฌํ์ต๋๋ค.
1. AWS EC2 Instance ์ ์
CloudFormation์ ํตํด, EC2 ๋ฐ ์ ๋ฐ์ฌํญ์ ๊ตฌ์ฑํ์ฌ ์ฃผ์
จ์ต๋๋ค๋ง, ์ทจ๋ฏธ ์ผ์ Terraform ๋ณํ ์์
์ ํด๋ณด์์ต๋๋ค. ํ์ง ๋ง์์ด์ผํ๋๋ฐ… LoL