KubeSphere安裝KubeEdge


我這里是在之前安裝了kubesphere的集群上進行操作的

配置master節點

控制台->平台管理->集群管理->自定義CRD,搜索clusterconfiguration,查看詳情,在資源列表中,點擊 ks-installer 右側的圖標,然后選擇編輯配置文件。

kubeedge.enabledfalse改為true

kubeedge:
  enabled: true # 將“false”更改為“true”。

kubeedge.cloudCore.cloudHub.advertiseAddress 的值設置為集群的公共 IP 地址或邊緣節點可以訪問的 IP 地址。完成后,點擊右下角的更新保存配置。

  kubeedge:
    cloudCore:
      cloudHub:
        advertiseAddress:
          - 192.168.80.10

查看安裝過程

kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f

安裝完成后,web頁面上控制台->平台管理->集群管理->節點管理目錄下,會出現邊緣節點

配置邊緣節點

邊緣節點安裝Docker-ce 19.03,鏡像加速地址去自己的阿里雲帳號申請

yum install docker-ce-19.03.15-3.el7  docker-ce-cli-19.03.15-3.el7 -y
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=cgroupfs"],
  "registry-mirrors": ["https://******.mirror.aliyuncs.com"]
}
EOF
systemctl enable docker && systemctl restart docker

配置 EdgeMesh

編輯 /etc/nsswitch.conf

vi /etc/nsswitch.conf

修改hosts

hosts:          dns files mdns4_minimal [NOTFOUND=return]

運行以下命令啟用 IP 轉發:

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

檢查驗證

[root@edgenode-01 ~]# sysctl -p | grep ip_forward
net.ipv4.ip_forward = 1

添加邊緣節點

在控制台->平台管理->集群管理->節點管理->邊緣節點,點擊添加節點,設置邊緣節點的節點名稱並輸入其內網 IP 地址,添加污點一定要打勾,方便后續調度,點擊驗證生成命令

arch=$(uname -m); curl -LO https://kubeedge.pek3b.qingstor.com/bin/v1.6.2/$arch/keadm-v1.6.2-linux-$arch.tar.gz  && tar xvf keadm-v1.6.2-linux-$arch.tar.gz && chmod +x keadm && ./keadm join --kubeedge-version=1.6.2 --region=zh --cloudcore-ipport=192.168.80.10:10000 --quicport 10001 --certport 10002 --tunnelport 10004 --edgenode-name edgenode-vwuk --edgenode-ip 192.168.80.25 --token 805ca3c73ce17f447764d13c8bf95a73a683aa63674f760020e4da2c37a58667.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MzAxMjI4NzR9.VVLBlOiSeVssi5gHmiHRf6xocjjjLJjLSyz6dOcNl2A --with-edge-taint

如果使用的是雲服務器搭建,那么添加防火牆和端口轉發規則,需要將外網端口映射到相應的內網 IP 地址(主節點)和端口以及創建防火牆規則以允許流量進入這些端口(1000010004)。添加完,直接將命令復制到邊緣節點進行執行。

因為我用的是內網搭建,所以需要將命令里的端口都改為(3000030004),改完后執行

arch=$(uname -m); curl -LO https://kubeedge.pek3b.qingstor.com/bin/v1.6.2/$arch/keadm-v1.6.2-linux-$arch.tar.gz  && tar xvf keadm-v1.6.2-linux-$arch.tar.gz && chmod +x keadm && ./keadm join --kubeedge-version=1.6.2 --region=zh --cloudcore-ipport=192.168.80.10:30000 --quicport 30001 --certport 30002 --tunnelport 30004 --edgenode-name edgenode-vwuk --edgenode-ip 192.168.80.25 --token 805ca3c73ce17f447764d13c8bf95a73a683aa63674f760020e4da2c37a58667.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MzAxMjI4NzR9.VVLBlOiSeVssi5gHmiHRf6xocjjjLJjLSyz6dOcNl2A --with-edge-taint

成功執行,顯示如下

[Run as service] service file already exisits in /etc/kubeedge//edgecore.service, skip download
kubeedge-v1.6.2-linux-amd64/
kubeedge-v1.6.2-linux-amd64/edge/
kubeedge-v1.6.2-linux-amd64/edge/edgecore
kubeedge-v1.6.2-linux-amd64/cloud/
kubeedge-v1.6.2-linux-amd64/cloud/csidriver/
kubeedge-v1.6.2-linux-amd64/cloud/csidriver/csidriver
kubeedge-v1.6.2-linux-amd64/cloud/admission/
kubeedge-v1.6.2-linux-amd64/cloud/admission/admission
kubeedge-v1.6.2-linux-amd64/cloud/cloudcore/
kubeedge-v1.6.2-linux-amd64/cloud/cloudcore/cloudcore
kubeedge-v1.6.2-linux-amd64/version

KubeEdge edgecore is running, For logs visit: journalctl -u edgecore.service -b

此時,刷新邊緣節點頁面,會顯示新添加的邊緣節點,若沒有出現,查看日志找錯誤信息

journalctl -u edgecore.service -f

移除邊緣節點

邊緣節點上執行

./keadm reset
yum remove mosquitto
rm -rf /var/lib/kubeedge /var/lib/edged /etc/kubeedge/ca /etc/kubeedge/certs

然后去master節點,移除邊緣節點

kubectl delete node <edgenode-name>

在邊緣節點運行pod

在master編寫pod的yaml,因為邊緣節點上有污點node-role.kubernetes.io/edge,所以需要設置pod的容忍度

apiVersion: v1
kind: Pod
metadata:
  name: nginx-edge
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80
      hostPort: 80
  tolerations:
  - key: "node-role.kubernetes.io/edge"
    operator: "Exists"
    effect: "NoSchedule"

部署

kubectl apply -y nginx-edge.yaml

可以看到,pod已經被調度到邊緣節點edgenode-jkfy上

[root@k8s-master01 yaml]# kubectl get pod nginx-edge -o wide
NAME         READY   STATUS    RESTARTS   AGE   IP           NODE            NOMINATED NODE   READINESS GATES
nginx-edge   1/1     Running   0          12m   172.17.0.2   edgenode-jkfy   <none>           <none>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM