kind ๋๊ตฌ๋ฅผ ํ์ฉํ์ฌ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ฅผ ๋ก์ปฌ์์ ๋์ปค๋ก ๊ฐ๋จํ๊ฒ ์คํํ ์ ์๋ ํ๊ฒฝ์ ๊ตฌ์ถํด๋ณธ๋ค.
๊ทผ๋ฐ ์ด์ ๋คํธ์ํฌ cni๋ cilium์ ๊ณ๋ค์ธ ๋ฒ์ ์ด๋ค.
์ฌ์ ํ๊ฒฝ ์ ํ
brew install orbstack
๋งฅ๋ถ์ ๋์ปค ๋ฐํ์ด ์์ด์ orbstack์ ์ค์นํด์ฃผ์๋ค!
์คํ์คํ ์์ VM์ ์ฃผ๋ก ์ด์ํด๋ณธ ์ ์ฅ์ผ๋ก์จ... ๋์ปค๊ฐ VM ๋ณด๋ค ์๋ฌด๋๋ ๊ฐ๋ณ๋ค๋ณด๋.. ๋์ปค ๋ฐ์คํฌํ์ด ๊ฒฝ๋ํ๋ ๋๊ตฌ์ธ์ค ์์๋๋ฐ, ๋์ปค ๋ฐํ๋ณด๋ค ํจ์ฌ ๊ฒฝ๋ํ๋ orbstack์ด๋ผ๋ ๊ฒ์ด ์์๋ค!
kind, cilium cli ์ค์น
brew install kind
brew install cilium-cli
cilium version
cilium-cli: v0.17.0 compiled with go1.24.0 on darwin/arm64
cilium image (default): v1.17.0
cilium image (stable): v1.17.1
cilium image (running): 1.17.1
kind ํด๋ฌ์คํฐ ๊ตฌ์ถ
ํด๋ฌ์คํฐ ์์ฑ
cat > cilium.yaml << EOF
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
- role: worker
networking:
disableDefaultCNI: true # kind cni ์ค์น X
kubeProxyMode: "none" # kube-proxy ์ค์น X
EOF
kind create cluster --name cilium --config cilium.yaml
Kind๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฒด CNI ํ๋ฌ๊ทธ์ธ์ ์ค์นํ๋๋ฐ, ์ด ์ต์ ์ true๋ก ์ค์ ํ๋ฉด Kind๊ฐ ๊ธฐ๋ณธ cni์ธ kindnet์ ์ค์นํ์ง ์๊ฒ ๋๋ค.
Cilium์ kube-proxy ์์ด eBPF ๊ธฐ๋ฐ ์๋น์ค ๋ก๋๋ฐธ๋ฐ์ฑ์ ์ ๊ณตํ ์ ์๋๋ฐ, kube-proxy๋ฅผ ๋์ฒดํ์ฌ ์ง์ ๋คํธ์ํฌ ์ ์ฑ ์ ๊ด๋ฆฌํ ์ ์๋ค.
kind create cluster --name cilium --config cilium.yaml
Creating cluster "cilium" ...
โ Ensuring node image (kindest/node:v1.32.2) ๐ผ
โ Preparing nodes ๐ฆ ๐ฆ ๐ฆ ๐ฆ
โ Writing configuration ๐
โ Starting control-plane ๐น๏ธ
โ Installing StorageClass ๐พ
โ Joining worker nodes ๐
Set kubectl context to "kind-cilium"
You can now use your cluster with:
kubectl cluster-info --context kind-cilium
Not sure what to do next? ๐
Check out https://kind.sigs.k8s.io/docs/user/quick-start/
kubectl config use-context kind-cilium
kubectl cluster-info
์คํฐ๋๋ฅผ ํ๊ณ ์์ด์ aws ํด๋ฌ์คํฐ๋ ๊ฐ์ด ์๋ ์ํฉ์ธ๋ฐ,
kubectl๋ก kind๋ก ๊ตฌ์ถํ ํด๋ฌ์คํฐ๋ก ์ปจํ ์คํธ๋ฅผ ์ค์ ํด์ฃผ๊ธฐ ์ํด use-context๋ฅผ ์ฌ์ฉํ๋ค.
cilium ์ค์น
export API_SERVER_IP=$( kubectl get nodes -l node-role.kubernetes.io/control-plane -o yaml \
| yq '.items[0].status.addresses[] | select(.type=="InternalIP").address' )
cilium install --version 1.17.1 -n kube-system \
--set kubeProxyReplacement=true \
--set k8sServiceHost=${API_SERVER_IP} \
--set k8sServicePort=6443
์ค๋ฆฌ์์ด ์ฟ ๋ฒ๋คํฐ์ค API ์๋ฒ์ ์ฐ๊ฒฐ๋๊ธฐ ์ํด์๋ ์ปจํธ๋กค ํ๋ ์ธ ๋ ธ๋ ip์ธ k8sServiceHost, k8sServicePort (6443) ๊ฐ์ด ํ์ํ๋ค.
๋ก์ปฌ ip๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ปจํธ๋กค ํ๋ ์ธ ๋ ธ๋์ ์ธํฐ๋ ip๋ฅผ ๊ฐ์ ธ์จ๋ค.
k get nodes
NAME STATUS ROLES AGE VERSION
cilium-control-plane Ready control-plane 49m v1.32.2
cilium-worker Ready <none> 48m v1.32.2
cilium-worker2 Ready <none> 48m v1.32.2
cilium-worker3 Ready <none> 48m v1.32.2
cilium status
/¯¯\
/¯¯\__/¯¯\ Cilium: OK
\__/¯¯\__/ Operator: OK
/¯¯\__/¯¯\ Envoy DaemonSet: OK
\__/¯¯\__/ Hubble Relay: disabled
\__/ ClusterMesh: disabled
DaemonSet cilium Desired: 4, Ready: 4/4, Available: 4/4
DaemonSet cilium-envoy Desired: 4, Ready: 4/4, Available: 4/4
Deployment cilium-operator Desired: 1, Ready: 1/1, Available: 1/1
Containers: cilium Running: 4
cilium-envoy Running: 4
cilium-operator Running: 1
clustermesh-apiserver
hubble-relay
Cluster Pods: 3/3 managed by Cilium
์ค๋ฆฌ์์ด ๊ตฌ์ฑ๋๊ธฐ ๊น์ง ์กฐ๊ธ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋๋ฐ 5๋ถ ์์ ok๋ก ๋ณํ๋ค.
'Infra > ์ฟ ๋ฒ๋คํฐ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฟ ๋ฒ๋คํฐ์ค] ์ฟ ๋ฒ๋คํฐ์ค์ ์ถ๊ตฌ๋ฏธ (2) | 2024.09.24 |
---|---|
[์ฟ ๋ฒ๋คํฐ์ค] ํ๋ (4) | 2024.09.06 |
[์ฟ ๋ฒ๋คํฐ์ค] ๋์ปค, ์ฟ ๋ฒ๋คํฐ์ค ๊ทธ๋ฆฌ๊ณ ์ค์ต ํ๊ฒฝ ์ ํ (5) | 2024.09.04 |
operator-sdk scaffold ๋ง๋ค๊ธฐ (0) | 2024.04.23 |
์๋์ฐ์์ operator-sdk ์ฌ์ฉ ํ๊ฒฝ ๊ตฌ์ถ (wsl, Ubuntu 22.04) (0) | 2024.04.23 |