摘要:tar -zxvf karmadactl-linux-amd64.tgzmv karmadactl /usr/local/bin/测试命令root@test-k8s-master1:~# karmadactl -hkarmadactl controls a K
下载对应的安装包:
地址如下https://github.com/karmada-io/karmada/releases 选择对应的架构下载即可
下载:
wget https://github.com/karmada-io/karmada/releases/download/v1.14.0/karmadactl-linux-amd64.tgz安装客户端karmadactl
tar -zxvf karmadactl-linux-amd64.tgzmv karmadactl /usr/local/bin/测试命令root@test-k8s-master1:~# karmadactl -hkarmadactl controls a Kubernetes Cluster Federation.Basic Commands:explain Get documentation for a resourceget Display one or many resources in Karmada control plane and member Clusters.create Create a resource from a file or from stdindelete Delete resources by file names, stdin, resources and names, or by resources and label selectoredit Edit a resource on the serverCluster Registration Commands:init Install the Karmada control plane in a Kubernetes clusterdeinit Remove the Karmada control plane from the Kubernetes cluster.addons Enable or disable a Karmada addonjoin Register a cluster to Karmada control plane with Push modeunjoin Remove a cluster from Karmada control planetoken Manage bootstrap tokensregister Register a cluster to Karmada control plane with Pull modeunregister Remove a pull mode cluster from Karmada control plane安装
可更具 karmadactl init -h 查看对应的参数 设置镜像地址主要有以下参数karmadactl init --port=32443 --kube-image-registry='registry.cn-hangzhou.aliyuncs.com/google_containers' --etcd-init-image='harbor.assistfc.com/middleware/alpine:3.21.3' --karmada-aggregated-apiserver-image='harbor.assistfc.com/middleware/karmada-aggregated-apiserver:v1.14.0' --karmada-controller-manager-image='harbor.assistfc.com/middleware/karmada-controller-manager:v1.14.0' --karmada-scheduler-image='harbor.assistfc.com/middleware/karmada-scheduler:v1.14.0' --karmada-webhook-image='harbor.assistfc.com/middleware/karmada-webhook:v1.14.0' --crds='https://github.com/karmada-io/karmada/releases/download/v1.14.0/crds.tar.gz'几个镜像需提前翻墙准备如若失败 可卸载karmadactl deinit 执行完成后查看状态root@test-k8s-master1:~# kubectl get pod -n karmada-systemNAME READY STATUS RESTARTS AGEetcd-0 1/1 Running 0 18hkarmada-aggregated-apiserver-5cc5bddd5b-7x4zp 1/1 Running 0 18hkarmada-apiserver-786cc59949-zcnf8 1/1 Running 0 18hkarmada-controller-manager-6877b5d9f8-kkj8h 1/1 Running 0 18hkarmada-scheduler-758597577c-hbc6r 1/1 Running 0 18hkarmada-webhook-bbd74f997-2v8xv 1/1 Running 0 18hkube-controller-manager-7784c468d5-mglnz 1/1 Running 0 18h创建对应的配置文件kind: ClusterapiVersion: kind.x-k8s.io/v1alpha4networking:apiServerAddress: "10.41.1.20" # 允许所有IP访问apiServerPort: 36473 # 固定暴露端口(避免随机分配)nodes:- role: control-planeextraPortMappings:- containerPort: 6443 # Kind内部API Server端口hostPort: 36474 # 宿主机暴露端口protocol: TCP#创建集群kind create cluster --name remote-cluster --config kind-config.yaml查看集群信息root@devops-test:~# kubectl cluster-info --context kind-remote-clusterKubernetes master is running at https://10.41.1.20:36473CoreDNS is running at https://10.41.1.20:36473/api/v1/namespaces/kube-system/services/kube-dns:dns/proxyTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.1.通过push的方式进行添加集群
karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config join kind-test --cluster-kubeconfig=./2.20_config 查看集群的添加信息是否okkarmadactl get clusters --kubeconfig /etc/karmada/karmada-apiserver.config root@test-k8s-master1:~# karmadactl get clusters --kubeconfig /etc/karmada/karmada-apiserver.config NAME CLUSTER VERSION MODE READY AGE ADOPTIONkind-test Karmada v1.21.1 Push True 12m -2.通过pull的方式注册集群
创建对应的tokenkarmadactl token create --print-register-command --kubeconfig /etc/karmada/karmada-apiserver.configroot@test-k8s-master1:~# karmadactl token create --print-register-command --kubeconfig /etc/karmada/karmada-apiserver.configkarmadactl register 10.41.18.10:32443 --token gxtbzm.20eu3rluvlpbxbzl --discovery-token-ca-cert-hash sha256:b41bda392afa3a96bbaece213c27d6520559ad22d450a95efc00300b06974dd3#在成员集群执行注册命令root@wadequ-ThinkPad-L13:/home/wadequ# karmadactl register 10.41.18.10:32443 --token gxtbzm.20eu3rluvlpbxbzl --discovery-token-ca-cert-hash sha256:b41bda392afa3a96bbaece213c27d6520559ad22d450a95efc00300b06974dd3[preflight] Running pre-flight checks[preflight] All pre-flight checks were passed[karmada-agent-start] Waiting to perform the TLS Bootstrap[karmada-agent-start] Waiting to check cluster exists[karmada-agent-start] Assign the necessary RBAC permissions to the agent[karmada-agent-start] Waiting to construct karmada-agent kubeconfig[karmada-agent-start] Waiting the necessary secret and RBAC[karmada-agent-start] Waiting karmada-agent Deploymentcluster(kind-wade-local-test) is joined successfully这里可以指定对应的参数 --karmada-agent-image='docker.io/karmada/karmada-agent:v1.14.0': 镜像的地址在karmada中查看karmadactl get clusters --kubeconfig /etc/karmada/karmada-apiserver.configroot@test-k8s-master1:~# karmadactl get clusters --kubeconfig /etc/karmada/karmada-apiserver.config NAME CLUSTER VERSION MODE READY AGE ADOPTIONkind-test Karmada v1.21.1 Push True 31m -kind-wade-local-test Karmada v1.24.0 Pull True 4s -已经添加完成问题当注册过时但是失败了处理
root@wadequ-ThinkPad-L13:/home/wadequ# karmadactl register 10.41.18.10:32443 --token gxtbzm.20eu3rluvlpbxbzl --discovery-token-ca-cert-hash sha256:b41bda392afa3a96bbaece213c27d6520559ad22d450a95efc00300b06974dd3[preflight] Running pre-flight checkserror execution phase preflight: [preflight] Some fatal errors occurred:[ERROR]: karmada-system/karmada-kubeconfig Secret already exists[ERROR]: karmada-system/karmada-agent-sa ServiceAccount already exists[ERROR]: karmada-system/karmada-agent Deployment 删除对应scret文件kubectl delete secret karmada-kubeconfig -n karmada-systemkubectl delete serviceaccount karmada-agent-sa -n karmada-systemkubectl delete deployment karmada-agent -n karmada-system在karmada中注销集群的命令如下
karmadactl unregister member3 --cluster-kubeconfig= --cluster-context= --karmada-config= --karmada-context=来源:战神联盟go