搭建集群

本地虚拟机准备

我用的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 默认的网络适配器连不上外网,新增一个网络适配器(点添加设备来添加),选择桥接模式的自动模式。

Vmware Fusion 网络配置
ifconfig

可以看到,需要修改ens37这个网卡的ip地址和子网掩码,子网掩码改成跟宿主机一致,ip改成跟宿主机在相同网段,网络即可与宿主机互通(上图是修改之后的效果图)。

注:配置好一台服务器之后,可利用 Vmware 的「创建完整克隆」功能,克隆好第2台之后,启动它,修改 ifcfg-ens37 网络配置的UUID、IPADDR。再改一下主机名即可。

给centos虚拟机开启ssh远程连接

参考

此时即可在宿主机上通过ssh连接这台虚拟机了

宿主机连接虚拟机

环境配置

修改yum源

配置docker镜像加速器

使用kubeadm搭建k8s集群

kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。

这个工具能通过两条指令完成一个kubernetes集群的部署:

1. 安装要求

在开始之前,部署Kubernetes集群机器需要满足以下几个条件:

  • 一台或多台机器,操作系统 CentOS7.x-86_x64

  • 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多

  • 可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点

  • 禁止swap分区

2. 准备环境

角色
IP

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?