搭建集群
本地虚拟机准备
我用的Mac,直接使用docker桌面软件附带的k8s参考。
查看存储在etcd中的元数据:docker exec -it {etcd_docker_id} etcdctl --cacert=/run/config/pki/etcd/ca.crt --cert=/run/config/pki/etcd/peer.crt --key=/run/config/pki/etcd/peer.key get / --prefix --keys-only
也尝试了虚拟机搭建环境,使用虚拟机软件:Vmware Fusion,Centos 7.9 DVD.iso 下载好后进行安装,选开发环境
网络问题解决
Vmware Fusion 默认的网络适配器连不上外网,新增一个网络适配器(点添加设备来添加),选择桥接模式的自动模式。


可以看到,需要修改ens37这个网卡的ip地址和子网掩码,子网掩码改成跟宿主机一致,ip改成跟宿主机在相同网段,网络即可与宿主机互通(上图是修改之后的效果图)。
注:配置好一台服务器之后,可利用 Vmware 的「创建完整克隆」功能,克隆好第2台之后,启动它,修改 ifcfg-ens37 网络配置的UUID、IPADDR。再改一下主机名即可。
给centos虚拟机开启ssh远程连接
此时即可在宿主机上通过ssh连接这台虚拟机了

环境配置
使用kubeadm搭建k8s集群
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。
这个工具能通过两条指令完成一个kubernetes集群的部署:
1. 安装要求
在开始之前,部署Kubernetes集群机器需要满足以下几个条件:
一台或多台机器,操作系统 CentOS7.x-86_x64
硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点
禁止swap分区
2. 准备环境
master
192.168.1.11
node1
192.168.1.12
node2
192.168.1.13
3. 所有节点安装Docker/kubeadm/kubelet
Kubernetes默认CRI(容器运行时)为Docker,因此先安装Docker。
3.1 安装Docker
3.2 添加阿里云YUM软件源
3.3 安装kubeadm,kubelet和kubectl
由于版本更新频繁,这里指定版本号部署:
4. 部署Kubernetes Master
在192.168.31.61(Master)执行。
apiserver-advertise-address 是当前节点的 ip
service-cidr、pod-network-cidr 填集群内的ip,不冲突就可以了
由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址。
接下来启动集群:
5. 加入Kubernetes Node
在192.168.1.12/13(Node)执行。
向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:
默认token有效期为24小时,当过期之后,该token就不可用了。这时就需要重新创建token,操作如下:
6. 部署CNI网络插件
默认镜像地址无法访问,sed命令修改为docker hub镜像仓库。
7. 测试kubernetes集群
在Kubernetes集群中创建一个pod,验证是否正常运行:
访问地址:http://NodeIP:Port
若只有一个master节点,可以开启允许master当做worker节点来调度Pod:
如果要恢复master的Master Only状态:
Last updated
Was this helpful?