kubeedge|kubeedge1.3.1阿里云ECS部署(基于公网IP)

本实验基于keadm自动部署工具的方式,在阿里云ECS上进行了kubeedge的部署,实现了公网中kubeedge的云边通信。关于keadm工具部署流程可以参考我这篇文章kubeedge1.3.1部署(基于keadm)。
由于之前的教程是基于局域网的环境,在公网环境部署还有不少需要注意的地方,在这里与大家分享一下一些蹚坑记录。
实验环境 master:阿里云ECS带公网IP,Centos 7,k8s 1.17
edge:虚拟机Centos 7
k8s环境配置 本实验依旧采用kubeadm对k8s环境进行部署,具体步骤可以参考之前提供的教程。需要注意的地方有以下几点:

  • 初始化时kubeadm init的–apiserver-advertise-address参数需要使用阿里云ECS的内网IP,否则k8s会部署失败。
  • kubeadm init初始化之后,需要安装flannel插件(上篇教程最后的问题就是由于没有安装网络插件导致的),本实验采用flannel 0.11.0的版本测试通过。在使用journalctl -xfu kubelet命令查看kubelet日志时一直提示Error validating CNI config list错误,目前没有找到好的解决办法,但是似乎不影响正常使用。
keadm部署 【kubeedge|kubeedge1.3.1阿里云ECS部署(基于公网IP)】在master端用keadm自动化部署时,需要注意添加--advertise-address参数,目的是为了keadm部署时利用阿里云ECS的公网IP生成证书,以便于edge端可以通过公网IP加入节点,详见官网教程说明。
kubeedge|kubeedge1.3.1阿里云ECS部署(基于公网IP)
文章图片

keadm部署过程会下载kubeedge-v1.3.1-linux-amd64.tar.gz文件到/etc/kubeedge/文件夹,并进行解压再安装,由于github的网络问题,下载过程很多时候会报错(通常是exit status 7)错误,因此可以手动下载该文件放到相应位置,keadm会自动识别直接进行解压操作。
master节点keadm部署完成后,记得在阿里云ECS安全组里打开相应的端口(10000-10003),以便于edge端可以通过公网IP进行连接。对于edge端,需要注意的是keadm join的--cloudcore-ipport参数要用ECS的公网IP,然后--token参数用云端生成的证书就可以。部署完成后,可以在master节点上用kubectl get nodes命令查看节点是否ready。
kubeedge|kubeedge1.3.1阿里云ECS部署(基于公网IP)
文章图片

    推荐阅读