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的案例



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