手动搭建 Karmada 集群

ipsum-0320 于 2024-03-31 发布

0.准备工作

安装 clash:https://www.bilibili.com/read/cv28866729/。

下载 kind:wget https://github.com/kubernetes-sigs/kind/releases/download/v0.17.0/kind-linux-amd64

安装 kind 镜像:docker pull kindest/node:v1.25.3

创建一个 kind 集群:kind create cluster --name $CLUSTER_NAME

1.karmada 必须运行在一个 k8s 集群中

2.## kind 命令的使用

创建集群:kind create cluster –name $CLUSTER_NAME

可以使用如下命令来切换集群:

kubectl config use-context kind-host

记得加 kind 前缀

3.如果 kind 所创建的 k8s 集群没有相应镜像

直接使用 kind load 导入。

kind load 导入镜像

kind load docker-image \
karmada/karmada-controller-manager:v1.8.1 \
karmada/karmada-aggregated-apiserver:v1.8.1 \
karmada/karmada-webhook:v1.8.1 \
karmada/karmada-scheduler:v1.8.1 \
alpine:3.18.5 \
registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.9-0 \
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.25.4 \
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.25.4 \
--name host

4.学会使用 kubectl 查看 bug

5.可以单独为 git 设置代理

git config --global http.proxy 'http://127.0.0.1:7890' 
git config --global https.proxy 'http://127.0.0.1:7890'

git config --global --get http.proxy
git config --global --get https.proxy

git config --global --unset http.proxy
git config --global --unset https.proxy

6.有时候出现 GET/POST http:// 类错误时首先考虑是不是代理问题

unset http_proxy
unset https_proxy

6.5.创建 karmada 集群使用命令 karmadactl init –kube-image-mirror-country=cn

7.karmada 查看集群 kubectl –kubeconfig /etc/karmada/karmada-apiserver.config get clusters

7.5.集群通信问题

使用 kind 将集群搭建好之后,需要修改 kubeconfig 的 apiendpoint 配置,改成 kind 的网段 IP(以 172.18 开头),重新进行 join。

kind 网段 IP 可以通过 kubectl get node -o wide 查询。

需要修改 --cluster-kubeconfig=/root/.kube/config 中的 server 参数,将其修改为相应控制节点的INTERNAL-IP:6443。

只需要修改 slave 的 server 就可以了。

8.向 karmada 中添加/删除待管理的集群

添加:karmadactl join slave-1 --kubeconfig=/etc/karmada/karmada-apiserver.config --cluster-kubeconfig=/root/.kube/config --cluster-context=kind-slave-1

删除:karmadactl unjoin slave-1 --kubeconfig=/etc/karmada/karmada-apiserver.config --cluster-kubeconfig=/root/.kube/config --cluster-context=kind-slave-1

下面是参数解释:

9.什么是 API EndPoint

这个是 k8s APIServer 的地址,一般是 INTERNAL-IP:6443。

10.Karmada 控制面的组成

Karmada 控制面的组成