使用Kubeadm(1.13+)快速搭建Kubernetes集群

 Kubeadm是管理集群生命周期的重要工具,从创建到配置再到升级,Kubeadm处理现有硬件上的生产集群的引导,并以最佳实践方式配置核心Kubernetes组件,以便为新节点提供安全而简单的连接流程并支持轻松升级。随着Kubernetes 1.13 的发布,现在Kubeadm正式成为GA。

准备

首先准备2台虚拟机(CPU最少2核),我是使用Hyper-V创建的2台Ubuntu18.04虚拟机,IP和机器名如下:

172.17.20.210 master

172.17.20.211 node1

禁用Swap

Kubernetes 1.8开始要求必须禁用Swap,如果不关闭,默认配置下kubelet将无法启动。

编辑/etc/fstab文件:

sudo vim /etc/fstab  UUID=8be04efd-f7c5-11e8-be8b-00155d000500 / ext4 defaults 0 0 UUID=C0E3-6A72 /boot/efi vfat defaults 0 0 #/swap.img      none    swap    sw      0       0

如上,将/swap.img所在的行注释掉,然后运行:

sudo swapoff -a

(可选)DNS配置

在Ubuntu18.04+版本中,DNS由systemd全面接管,接口监听在127.0.0.53:53,配置文件在/etc/systemd/resolved.conf中。

有时候会导致无法解析域名的问题,可使用如下2种方式来解决:

1.最简单的就是关闭systemd-resolvd服务

sudo systemctl stop systemd-resolved sudo systemctl disable systemd-resolved

然后手动修改/etc/resolv.conf文件就可以了。

2.更加推荐的做法是修改systemd-resolv的设置:

sudo vim /etc/systemd/resolved.conf  # 修改为如下 [Resolve] DNS=1.1.1.1 1.0.0.1 #FallbackDNS= #Domains= LLMNR=no #MulticastDNS=no #DNSSEC=no #Cache=yes #DNSStubListener=yes

DNS=设置的是域名解析服务器的IP地址,这里分别设为1.1.1.1和1.0.0.1
LLMNR=设置的是禁止运行LLMNR(Link-Local Multicast Name Resolution),否则systemd-resolve会监听5535端口。

安装Docker

Kubernetes从1.6开始使用CRI(Container Runtime Interface)容器运行时接口。默认的容器运行时仍然是Docker,是使用kubelet中内置dockershim CRI来实现的。

Docker的安装可以参考之前的博客:Docker初体验

需要注意的是,Kubernetes 1.13已经针对Docker的1.11.1, 1.12.1, 1.13.1, 17.03, 17.06, 17.09, 18.06等版本做了验证,最低支持的Docker版本是1.11.1,最高支持是18.06,而Docker最新版本已经是18.09了,故我们安装时需要指定版本为18.06.1-ce

sudo apt install docker-ce=18.06.1~ce~3-0~ubuntu

安装kubeadm, kubelet 和 kubectl

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信