Karmada Multi-Cluster Control Plane Setup

๐Ÿ’ก Karmada Multi-Cluster Control Plane Setup โ€” Executive Summary

Technical architectural analysis, practical configuration manifests, and deployment instructions for Karmada Multi-Cluster Control Plane Setup.

Install Karmada
Install kubectl-karmada-cli using krew
  • [https://karmada.io/docs/installation/install-cli-tools#install-kubectl-karmada](https://karmada.io/docs/installation/install-cli-tools#install-kubectl-karmada)
bash
kubectl krew install karmada
karmada install
bash
# ~/.kube/config or kubeconfig ์„ค์ • ํŒŒ์ผ ๋‹ค์ค‘ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ํ›„ ์ง„ํ–‰

#์„ค์น˜
kubectl karmada init
#kubectl karmada completion bash >> /etc/profile

#kamada-apiserver-config๋ฅผ kubeconfig์— ๋“ฑ๋ก
cat /etc/karmada/karmada-apiserver.config >> ~/.kube/config
vi ~/.kube/config #์•Œ๋งž๊ฒŒ yaml ์ˆ˜์ •
Register member cluster
  1. Register cluster in โ€˜pushโ€™ mode
bash
# 0๋‹จ๊ณ„: ํด๋Ÿฌ์Šคํ„ฐ ๋ณ€๊ฒฝ
   kubectl config use-context $context

   # 1๋‹จ๊ณ„: "kubectl karmada Join" ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ Karmada ์ œ์–ด ํ”Œ๋ ˆ์ธ์— ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. --cluster-kubeconfig๋Š” ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ์˜ kubeconfig์ž…๋‹ˆ๋‹ค.
   kubeconfig="~/.kube/config"
   kubeconfig="/etc/rancher/k3s/k3s.yaml"
   MEMBER_CLUSTER_NAME=$(cat $kubeconfig | grep current-context | sed 's/: /\n/g'| sed '1d')
   kubectl karmada --kubeconfig /etc/karmada/karmada-apiserver.config join ${MEMBER_CLUSTER_NAME} --cluster-kubeconfig=$kubeconfig

   # 2๋‹จ๊ณ„: karmada ํšŒ์› ํ‘œ์‹œ
   kubectl --kubeconfig /etc/karmada/karmada-apiserver.config get clusters
  1. Register cluster in โ€˜Pullโ€™ mode
bash
# 1๋‹จ๊ณ„: "kubectl karmada register" ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ Karmada ์ œ์–ด ํ”Œ๋ ˆ์ธ์— ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. "--cluster-name"์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ˜„์žฌ ์ปจํ…์ŠคํŠธ์˜ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
   (member) kubectl karmada register 172.10.40.196:32443 --token oqyh3t.1u7pjbmegrwujxmn --discovery-token-ca-cert-hash sha256:523c3801d4dfeb654e8f2ec565d6d50f16246ec55cf30ab64c80a0b1f596149c                 

   # 2๋‹จ๊ณ„: karmada ๋ฉค๋ฒ„ ํ‘œ์‹œ
   (karmada) kubectl --kubeconfig /etc/karmada/karmada-apiserver.config get clusters
Install and log in to Karmada Dashboard
bash
#karmada-host๋กœ ์ „ํ™˜
kubectl config use-context default
#๋Œ€์‹œ๋ณด๋“œ ์„œ๋น„์Šค ๋ฐฐํฌ
kubectl apply -f https://raw.githubusercontent.com/karmada-io/dashboard/main/deploy/karmada-dashboard.yaml

#karmada-apiserver๋กœ ์ „ํ™˜
kubectl config use-context karmada-apiserver
#์„œ๋น„์Šค์–ด์นด์šดํŠธ ์ƒ์„ฑ
kubectl apply -f  https://raw.githubusercontent.com/karmada-io/dashboard/main/deploy/karmada-dashboard-role.yaml
#๋ฌด๊ธฐ๋ช…ํ† ํฐ ๋ฐ›๊ธฐ : k8s ๋ฒ„์ „์ด ๋†’์€ ๊ฒฝ์šฐ sa์ƒ์„ฑ ํ›„ ์ˆ˜๋™์œผ๋กœ ์‹œํฌ๋ฆฟ์ƒ์„ฑ ํ•ด์•ผ ํ•จ.
kubectl -n karmada-system get secret $(kubectl -n karmada-system get sa/karmada-dashboard -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"

#๋ธŒ๋ผ์šฐ์ € ์ ‘์† ํ›„ jwt๋กœ ์ธ์ฆ !! ์ค‘๊ตญ์–ด ์ฃผ์˜, ์ ‘์†ํ›„ ์˜์–ด๋กœ ๋ณ€๊ฒฝ๊ฐ€๋Šฅ
#(๋…ธ๋“œํฌํŠธ 30486 ์ ‘๊ทผ)

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *