一、准备环境
注意:服务器不要apt update及apt upgrade ,服务器不要apt update及apt upgrade ,服务器不要apt update及apt upgrade !
服务器系统要求:ubuntu18.04(qly-soft/cmcc/ubuntu18.04)
=============== 业务服务部署集群 ===============
#k8s1节点
hostnamectl set-hostname k8s1.aolingo.com
#k8s2节点
hostnamectl set-hostname k8s2.aolingo.com
#k8s3节点
hostnamectl set-hostname k8s3.aolingo.com
=============== 算力设备纳管集群 ===============
#edge1节点
hostnamectl set-hostname edge1.aolingo.com
#edge2节点
hostnamectl set-hostname edge2.aolingo.com
二、安装应用K8S集群(业务集群)
1、安装k8s集群
用于部署平台需要的一些java项目,为app及前端提供业务服务。
tar zxvf iEKS_V2312_Ubuntu.tar.gz
cd ieks_ubuntu/
vim config.yaml
修改内容如下:

#创建k8s集群
./kk-cli -f config.yaml create cluster
#卸载集群
./kk-cli -f config.yaml delete cluster
#验证集群
kubectl get nodes
kubectl get pods -A
2、安装karmada等组件
tar zxvf ieks-gauss-min.tar.gz
cd ieks-gauss-min/
vim config-gauss.yaml
修改内容如下:
安装监控、eksm及karmada等组件


./gauss-cli deploy addons
查看所有的pod,看看karmada的pod是否存在,如果存在则说明安装成功

三、安装kubeedge集群(设备纳管集群)
1、安装纳管k8s集群
tar zxvf iEKS_V2312_Ubuntu.tar.gz
cd ieks_ubuntu
vim config.yaml
修改内容如下:

./kk-cli -f config.yaml create cluster
2、为纳管k8s集群安装一些组件
tar zxvf ieks-gauss-min.tar.gz
cd ieks-gauss-min/
vim config-gauss.yaml
修改内容如下:


注意,我们计划用业务k8s集群安装的karmada管理设备纳管集群,因此在纳管集群中一定不要安装karmada组件了。
./gauss-cli deploy addons
四、实现业务karmada管理设备纳管k8s集群
1、查找karmada-apiserver所在的节点
在安装业务集群的过程中,我们也安装了karmada来管理k8s集群。但是karmada的集群安装中,karmada-apiserver服务pod不一定落在k8s的主节点上,而我们后续添加纳管集群到karmada上的时候,必须在karmada-apiserver服务所在的k8s节点上运行才可以。
kubectl get pod -A -o wide

从上图可以看到karmada-apiserver服务所在的节点是k8s2,那么我们需要将业务集群的admin.yaml及纳管集群的admin.conf都拷贝到这个节点,以便将纳管集群添加到当前的karmada中。
2、拷贝纳管集群的admin.conf文件到业务集群的k8s2节点上
ssh k8s2
mkdir /opt/edge/
scp root@edge1:/etc/kubernetes/admin.conf /opt/edge/
编辑admin.conf,将配置中的server变更为纳管集群节点中的任一主节点的ip地址即可。

3、拷贝karmada的apiserver配置到业务集群的k8s2节点上
ssh k8s2
cd /opt/edge/
# 虽然karmada-apiserver服务落在k8s2上,但是karmada-apiserver.config配置文件却在k8s集群的主节点k8s1上
scp k8s1:/etc/karmada/karmada-apiserver.config ./
编辑karmada-apiserver.config,将server的地址配置成127.0.0.1(karmada-apiserver服务所在的节点,即k8s2上)

执行下面命令,将设备纳管的k8s集群添加到karmada中进行统一管理
ssh k8s2
cd /opt/edge
#加入集群 edge-cluster的名称是业务集在karmada中的集群名称
kubectl karmada join edge-cluster --cluster-context kubernetes-admin@cluster.local --kubeconfig=karmada-apiserver.config --cluster-kubeconfig=admin.conf
#删除集群
kubectl --kubeconfig=karmada-apiserver.config delete cluster cluster1
4、验证karmada
安装karmada工具
ssh k8s2
cd /opt/edge
karmadactl get pods -A
或
#适用指定apiserver的配置文件的情况
karmadactl get pods -A --kubeconfig=/opt/edge/karmada-apiserver.config
或
kubectl karmada get pods -A --kubeconfig=/opt/edge/karmada-apiserver.config
