Kind 部署 Karmada 多集群管理

什么是 Karmada 拇舀?

Karmada 是 CNCF 的云原生項目逻族,主要的能力是納管多個 Kubernetes 集群蜻底,以及基于原生的 Kubernetes 的資源對象骄崩,將其下發(fā)到多個集群。對于一些有計算資源需求的 Deployment薄辅,Job 等 workload 具體副本數(shù)調(diào)度能力要拂,讓不同的 workload 按照一些的策略運行在不同的集群上。以此來達到多云分發(fā)的能力的這么一個項目站楚。

Karmada 和 Kubernetes 的關(guān)系:首先 Karmada 本身需要運行在 Kubernetes 集群中脱惰,這樣的 Kubernetes 集群,我們稱作為 Host Cluster (宿主集群)窿春,主要是用來運行 Karmada 控制平面的組件拉一,其中包含 Karmada 的 etcd,karmada-api server旧乞, karmada-controller manager蔚润, Kubernetes controller manager,karmada-scheduler尺栖,karmada-webhook嫡纠, karmada-scheduler-estimator 等控制面的組件。還有一種集群是負責(zé)真正運行工作負載的集群延赌,對于這種集群除盏,我們稱之為 Workload Cluster。在 Workload Cluster 集群中挫以,會真正運行業(yè)務(wù)的容器者蠕、一些 Kubernetes 的資源對象、存儲掐松、網(wǎng)絡(luò)蠢棱、dns 等锌杀,同時對于 pull 模式的部署方式,還會運行 Karmada 的 agent 組件泻仙,用于和控制面組件通信糕再,完成工作負載的下發(fā)能力。

安裝部署

Kind 創(chuàng)建集群

本次實驗環(huán)境使用 Kind 創(chuàng)建集群玉转,因此需要提前安裝好 Kind突想。請自行搜索安裝。

我們直接使用 Karmada 為我們提供的腳本部署集群究抓。

Kind配置文件

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
networking:
  apiServerAddress: "10.115.92.94"
  apiServerPort: 6443
  kubeProxyMode: "ipvs"
nodes:
- role: worker
  extraPortMappings:
  - containerPort: 32443
    hostPort: 5443
    listenAddress: "0.0.0.0"
    protocol: tcp
- role: control-plane

若需執(zhí)行上面的 kind 配置文件猾担,按照下面步驟進行修改。

# 1. vim 打開創(chuàng)建集群的腳本
vim hack/create-cluster.sh

# 2. 搜索 kind create cluster 刺下,找到對應(yīng)行绑嘹,修改 --config 參數(shù)為你保存的配置文件地址即可肝匆。

開始部署娄涩。

# 下載 karmada 代碼
git clone https://github.com/karmada-io/karmada.git

# 進入 karmada 中
cd karmada

# 執(zhí)行創(chuàng)建集群的腳本
hack/create-cluster.sh host $HOME/.kube/host.config
# host 集群名稱
# $HOME/.kube/host.config 配置文件位置

部署 Karmada

安裝 Karmada 1.1.0,根據(jù)實際情況替換對應(yīng)的版本號屿衅。

kubectl karmada init \
    --crds https://github.com/karmada-io/karmada/releases/download/v1.1.0/crds.tar.gz \
    --cert-external-ip=10.115.92.94 \
    --kubeconfig=$HOME/.kube/host.config \
    --etcd-image=registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0 \
    --karmada-apiserver-image=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.21.7 \
    --karmada-kube-controller-manager-image=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.21.7
  • –crds:指定crds壓縮包畅卓,也可以直接下載下來換成本地路徑擅腰。
  • —cert-external-ip:需要外部訪問的時候,將本機IP地址加入證書中翁潘,允許可訪問趁冈。
  • –kubeconfig:集群的連接文件。
  • –etcd-image:指定 etcd 鏡像地址拜马,默認是 k8s.gcr.io 地址的鏡像渗勘,國內(nèi)訪問異常。
  • –karmada-apiserver-image:指定 Kubernetes apiserver 鏡像地址俩莽,默認是 k8s.gcr.io 地址的鏡像旺坠,國內(nèi)訪問異常。
  • –karmada-kube-controller-manager-image:指定 Kubernetes controller manager 鏡像地址豹绪,默認是 k8s.gcr.io 地址的鏡像价淌,國內(nèi)訪問異常。

看到以下內(nèi)容表示你已經(jīng)成功的將 karmada 部署到了瞒津,你剛創(chuàng)建 K8S 集群上蝉衣。

I0324 07:01:19.715559  124376 check.go:49] pod: karmada-aggregated-apiserver-77bf74f4d6-wb46z is ready. status: Running

------------------------------------------------------------------------------------------------------
 █████   ████   █████████   ███████████   ██████   ██████   █████████   ██████████     █████████
??███   ███?   ███?????███ ??███?????███ ??██████ ██████   ███?????███ ??███????███   ███?????███
 ?███  ███    ?███    ?███  ?███    ?███  ?███?█████?███  ?███    ?███  ?███   ??███ ?███    ?███
 ?███████     ?███████████  ?██████████   ?███??███ ?███  ?███████████  ?███    ?███ ?███████████
 ?███??███    ?███?????███  ?███?????███  ?███ ???  ?███  ?███?????███  ?███    ?███ ?███?????███
 ?███ ??███   ?███    ?███  ?███    ?███  ?███      ?███  ?███    ?███  ?███    ███  ?███    ?███
 █████ ??████ █████   █████ █████   █████ █████     █████ █████   █████ ██████████   █████   █████
?????   ???? ?????   ????? ?????   ????? ?????     ????? ?????   ????? ??????????   ?????   ?????
------------------------------------------------------------------------------------------------------
Karmada is installed successfully.

kubectl master 命令別名

karmada 部署完成后,你直接執(zhí)行 kubectl get cluster 發(fā)現(xiàn)沒有找到對應(yīng) crd 資源巷蚪,那是因為 karmada apiserver 的配置文件沒有找對病毡。

因此我們來配置一個命令別名方便我們后續(xù)使用。

alias kmc="kubectl --kubeconfig=/etc/karmada/karmada-apiserver.config"
# --kubeconfig:Karmada apiserver 默認的配置文件路徑屁柏,若有變動啦膜,請修改有送。

下面我們就可以使用這個命令來查詢 Karmada 對應(yīng)的 crd 列表了。

[root@karmada karmada]# kmc get crds
NAME                                                         CREATED AT
clusteroverridepolicies.policy.karmada.io                    2022-03-23T22:59:58Z
clusterpropagationpolicies.policy.karmada.io                 2022-03-23T22:59:58Z
clusterresourcebindings.work.karmada.io                      2022-03-23T22:59:58Z
federatedresourcequotas.policy.karmada.io                    2022-03-23T22:59:58Z
multiclusteringresses.networking.karmada.io                  2022-03-23T22:59:58Z
overridepolicies.policy.karmada.io                           2022-03-23T22:59:58Z
propagationpolicies.policy.karmada.io                        2022-03-23T22:59:58Z
resourcebindings.work.karmada.io                             2022-03-23T22:59:58Z
resourceinterpreterwebhookconfigurations.config.karmada.io   2022-03-23T22:59:58Z
serviceexports.multicluster.x-k8s.io                         2022-03-23T22:59:58Z
serviceimports.multicluster.x-k8s.io                         2022-03-23T22:59:58Z
works.work.karmada.io                                        2022-03-23T22:59:59Z

現(xiàn)有集群加入到 Karmada

karmadactl 命令僧家,我沒有找到現(xiàn)成的二進制文件雀摘,通過源碼自行編譯了一個。

在源碼項目根路徑下執(zhí)行一下命令即可八拱。

make karmadactl

執(zhí)行下面命令將集群加入到 Karmada 中阵赠。

karmadactl join karmada-member1 --kubeconfig=/etc/karmada/karmada-apiserver.config --cluster-kubeconfig=/root/.kube/host.config --cluster-context=kind-karmada-member1
  • –kubeconfig:Karmada apiserver 配置文件。
  • –cluster-kubeconfig:需要注冊到 Karmada 中的集群肌稻。
  • –cluster-context:若是配置文件中有多個集群信息清蚀,則需要指定 context 名稱。

輸出下面結(jié)果爹谭,則表示集群已經(jīng)順利加入了枷邪。

[root@karmada karmada]# kmc get cluster
NAME              VERSION   MODE   READY   AGE
karmada-member1   v1.23.4   Push   True    3h46m

本文為原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載本站文章诺凡。

原文出處:蘭玉磊的個人博客

原文鏈接:https://www.fdevops.com/2022/03/26/kind-karmada-31039

版權(quán):本文采用「署名-非商業(yè)性使用-相同方式共享 4.0 國際」知識共享許可協(xié)議進行許可东揣。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市绑洛,隨后出現(xiàn)的幾起案子救斑,更是在濱河造成了極大的恐慌童本,老刑警劉巖真屯,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異穷娱,居然都是意外死亡绑蔫,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門泵额,熙熙樓的掌柜王于貴愁眉苦臉地迎上來配深,“玉大人,你說我怎么就攤上這事嫁盲÷ㄒ叮” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵羞秤,是天一觀的道長缸托。 經(jīng)常有香客問我,道長瘾蛋,這世上最難降的妖魔是什么俐镐? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮哺哼,結(jié)果婚禮上佩抹,老公的妹妹穿的比我還像新娘叼风。我一直安慰自己,他們只是感情好棍苹,可當(dāng)我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布无宿。 她就那樣靜靜地躺著,像睡著了一般枢里。 火紅的嫁衣襯著肌膚如雪懈贺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天坡垫,我揣著相機與錄音梭灿,去河邊找鬼。 笑死冰悠,一個胖子當(dāng)著我的面吹牛堡妒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播溉卓,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼皮迟,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了桑寨?” 一聲冷哼從身側(cè)響起伏尼,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎尉尾,沒想到半個月后爆阶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡沙咏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年辨图,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肢藐。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡故河,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吆豹,到底是詐尸還是另有隱情鱼的,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布痘煤,位于F島的核電站凑阶,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏速勇。R本人自食惡果不足惜晌砾,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望烦磁。 院中可真熱鬧养匈,春花似錦哼勇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至猬仁,卻和暖如春帝璧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背湿刽。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工的烁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人诈闺。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓渴庆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親雅镊。 傳聞我的和親對象是個殘疾皇子襟雷,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容