kubeEdge安裝

提綱
1、kubeEdge和邊緣計算
2、集羣規劃
3、docker部署
4、kubernetes部署
5、kubeEdge部署



1、KubeEdge和邊緣計算

kubeEdge是一個開源的系統,可以將雲端k8s集羣中的容器化應用編排和管理擴展到邊緣節點,實現雲邊協同。
KubeEdge分爲雲端節點cloudcore和邊緣端節點edgecore,安裝部署時需要在雲端和邊緣端分別部署對應的組件,雲端和邊緣端部署組件如下:

  1. 雲端需要安裝:
  • docker
  • kubernetes組件
  • cloudcore
  1. 邊緣端需要安裝:
  • docker
  • edgecore

由於KubeEdge建立在kubernetes之上,使用kubernetes爲聯網、應用部署和雲與邊緣之間的元數據同步提供核心基礎設施支持。因此需要安裝kubernetes。
Kubernetes默認的容器運行時(Container Runtime)爲Docker,因此需要安裝Docker。



2、集羣規劃



3、docker部署

docker的部署在集羣中的各個節點都要做。

第一步,添加國內鏡像源,2節點都做

將以下內容寫入:/etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
enabled=1

第二步,更新Yum源並安裝docker,2節點都做

yum -y update
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

第三步,設置hostname,2節點都做

給2個主機ke-master,ke-edge1設置主機名
hostname ke-master/ke-edge1
設置hosts文件
cat >> /etc/hosts << EOF
192.168.214.150     ke-cloud
192.168.214.151   ke-edge1
192.168.214.152     ke-edge2
EOF

第四步,其他設置,2節點都做

#關掉並禁止防火牆
systemctl stop firewalld & systemctl disable firewalld
# 關掉並禁止selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
getenforce
# 永久關閉swap分區
vim /etc/fstab
註釋掉
/dev/mapper/centos-swap swap                    swap    defaults        0 0 這一行即可


4、Kubernetes部署

第一步,安裝kubeadm,kubelet,kubectl等命令

#安裝kubeadm,2節點都做
yum -y install kubelet-1.22.2-0 kubeadm-1.22.2-0 kubectl-1.22.2-0
# docker加入開機啓動,2節點都做
systemctl start docker && systemctl enable docker
# kubelet加入開機啓動,2節點都做
systemctl enable kubelet

第二步,初始化k8s集羣的主節點

#初始化k8s主節點,ke-master節點做,edge節點不需要
kubeadm init --kubernetes-version=1.22.2  \   #該參數指定k8s版本
--apiserver-advertise-address=192.168.214.150  \  #該參數是主節點IP
--image-repository registry.aliyuncs.com/google_containers  \ #指定下載部署組件的鏡像源
--service-cidr=10.10.0.0/16 --pod-network-cidr=10.122.0.0/16  #一些內網配置,可以直接用這個

成功後,會有如下截圖

第三步,將worker節點加入到k8s集羣中

#將其他的worker節點加入到k8s集羣中
#複製上面最後那段kubeadm join的命令到其他worker機子上,可以實現將節點加入到k8s集羣中,但是此時使用以下命令查看節點情況:
kubeadm join 10.14.70.158:6443 --token cf6je4.6qbhi1ort3vehmgt --discovery-token-ca-cert-hash sha256:1308be5b8f44fbf3210014eafc96d1bd4fe0f5b716300eddcef80b49e2168851 

#設置環境變量
vi /etc/profile
export KUBECONFIG=/etc/kubernetes/admin.conf

kubectl get nodes

第四步,安裝網絡組件calico

上面截圖中發現節點狀態都是NotReady,這是因爲網絡插件還沒配好,所以下一步就是下載網絡插件,calico和fannel都可以,這裏選擇calico:

curl https://docs.projectcalico.org/manifests/calico.yaml -O
kubectl apply -f calico.yaml

此時再看節點應該就是Ready了,不行就再刷新幾下,每次刷新之間等待一會兒。

至此,k8s集羣配置完成,下一步就是在現有集羣上配置KubeEdge了。



5、kubeEdge部署

配置kubeEdge時,要配置2個組件,雲端集羣中配置cloudcore,邊緣節點中配置edgecore

首先,下載kubeedege相關組件,所有節點都做:

# keadm,類似kubeadm的KE部署包
wget https://github.com/kubeedge/kubeedge/releases/download/v1.10.0/keadm-v1.10.0-linux-amd64.tar.gz
# 提前下載kubeedge壓縮包和校驗文件
wget https://github.com/kubeedge/kubeedge/releases/download/v1.10.0/kubeedge-v1.10.0-linux-amd64.tar.gz
wget https://github.com/kubeedge/kubeedge/releases/download/v1.10.0/checksum_kubeedge-v1.10.0-linux-amd64.tar.gz.txt

其次,配置雲端節點ke-cloud,只在雲端節點做

#解壓keadm壓縮包,並將其拷貝到集羣主節點目錄下(即/usr/bin)
tar -xvf keadm-v1.10.0-linux-amd64.tar.gz
cp keadm-v1.10.0-linux-amd64/keadm/keadm /usr/bin/

#下載好的kubeedge壓縮包和校驗文件,可以先把它們存在/etc/kubeedge目錄下
mkdir /etc/kubeedge/
cp kubeedge-v1.10.0-linux-amd64.tar.gz /etc/kubeedge/
cp checksum_kubeedge-v1.10.0-linux-amd64.tar.gz.txt /etc/kubeedge/

#雲節點進行邊緣集羣初始化
kubeadm init --kubernetes-version=1.22.2 --apiserver-advertise-address=10.14.70.158 --image-repository registry.aliyuncs.com/google_containers  --service-cidr=10.10.0.0/16 --pod-network-cidr=10.122.0.0/16

#上述初始化命令執行成功後,查看cloudcore是否正確運行
ps -ef|grep cloudcore

#cloudcore開機自啓動
cp /etc/kubeedge/cloudcore.service /etc/systemd/system/
systemctl daemon-reload
systemctl start cloudcore.service
systemctl enable cloudcore.service

#生成雲節點的token,通過Token可以讓其他邊緣節點加入
keadm gettoken

第三,配置邊緣節點

#邊緣節點在下載好Keadm,kubeedge和check_sum之後,同樣也要將其解壓縮並複製到工作目錄下:
#解壓keadm壓縮包,並將其拷貝到集羣主節點目錄下(即/usr/bin)
tar -xvf keadm-v1.10.0-linux-amd64.tar.gz
cp keadm-v1.10.0-linux-amd64/keadm/keadm /usr/bin/

#下載好的kubeedge壓縮包和校驗文件,可以先把它們存在/etc/kubeedge目錄下
mkdir /etc/kubeedge/
cp kubeedge-v1.10.0-linux-amd64.tar.gz /etc/kubeedge/
cp checksum_kubeedge-v1.10.0-linux-amd64.tar.gz.txt /etc/kubeedge/

#啓動邊緣節點的edgeCore,並將邊緣節點加入雲端集羣
keadm join --cloudcore-ipport=10.14.70.158:10000 --token cd68e2b0a5bfc623c72704aecc9f97d4cd75c982ed49daa2f6a3a5ae8f8ecf30.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDY2OTUxMTd9.qar6Q1i7LeTNTx4gKYcVh9tbF5yxuhidFRSG8USo1Sg --kubeedge-version=v1.10.0

#將雲端節點的/etc/kubernetes/admin.conf scp到邊緣節點的/etc/kubernetes/下,並設置環境變量
cd /etc/kubernetes/
scp admin.conf [email protected]:/etc/kubernetes/
vi /etc/profile
export KUBECONFIG=/etc/kubernetes/admin.conf

#邊緣節點查看edgecore是否運行
ps -ef | grep edgecore
systemctl enable edgecore
systemctl start edgecore

#邊緣節點查看集羣狀態
kubectl get nodes -o wide

第四,邊緣節點運行nginx

#ngnix.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 1  # 可根據需要進行調整
  template:
    metadata:
      labels:
        app: nginx
    spec:
      nodeName: ke-edge1  #調度到指定機器
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: NodePort

# 啓動
kubectl apply -f nginx.conf

#查看
kubectl get pods -o wide


參考資料
1、https://blog.csdn.net/weixin_45825909/article/details/128038232
2、https://www.runoob.com/docker/centos-docker-install.html
3、https://blog.csdn.net/qq_14910065/article/details/133843120,edge節點運行nginx
4、https://www.jianshu.com/p/6fa06b9bbf6a,kubectl命令出現錯誤【The connection to the server localhost:8080 was refused - did you specify的解決方法
5、https://zhuanlan.zhihu.com/p/598452325?utm_id=0,kubesphere上管理邊緣節點,並且指定服務運行在邊緣節點上
6、https://www.yii666.com/blog/68070.html,在kubeEdge節點上運行nginx的案例



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章