本实验基于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错误,目前没有找到好的解决办法,但是似乎不影响正常使用。
--advertise-address
参数,目的是为了keadm部署时利用阿里云ECS的公网IP生成证书,以便于edge端可以通过公网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。文章图片
推荐阅读
- SLAM&VIO|slambook2_in_Docker——视觉Slam十四讲代码Docker封装
- Google Adsense 建站要求
- 操作系统(王道考研)|2.7操作系统(读者—写者问题 哲学家进餐问题 管程 )
- Kubernetes 中数据包的生命周期 -- 第 2 部分
- linux之pkill命令
- runtime|谷歌编程之夏即将开启,快来申请开源任务吧(远程)
- Linux|VMware ping 不通主机和主机ping不通虚拟机解决
- linux|[linux-29] 安装mysql5.7(CentOS7.6)
- linux|[linux-28] 安装idea2020