安装和配置 Kubernetes 集群的过程是比较繁琐的,这里阐述在 Mac 上利用 virtualbox 配置 CentOS 7 上的 Kubernetes 集群的过程。
目标我们需要搭建的 Kubernetes 集群目标和规格如下:
k8s 集群包含 4 个节点,一个 Master 节点, 3 个 Worker 节点
主机为 Mac OS 10.14.5,所有节点的虚拟机在 VirtualBox 中实现
节点的操作系统为 CentOS 7.6
节点的配置为 CPU 1 核,内存 2G,硬盘 50G (动态分配)
节点采用 NAT 网络,划分网段为 192.168.56.0/24
docker 的版本为 18.09.7
Kubernetes 的版本为 1.15.0
由于宿主机不能与 NAT 网络直接通信,宿主机与节点采用 Host-Only 网络进行通信
4 个节点的规划如下
主机名IP 地址Host-Only IP 地址用途k8s-node1 192.168.56.11 192.168.7.11 master
k8s-node2 192.168.56.12 192.168.7.12 worker
k8s-node3 192.168.56.13 192.168.7.13 worker
k8s-node4 192.168.56.14 192.168.7.14 worker
开始之前
请按照如下要求准备环境
安装 VirtualBox 6本文使用 VirtualBox 6 配置虚拟机,请自行安装。
设置 NAT 网络
打开 VirtualBox, 按下快捷键 Command + ,, 或者点击菜单 VirtualBox -> 偏好设置,打开偏好设置窗口, 然后进入网络标签,点击 NAT 网络列表右侧的 添加新NAT网络 按钮,则添加了一个 NAT 网络 NatNetwork, 如下图
选中网络 NatNetwork,点击右侧的编辑NAT网络按钮,修改字段“网络 CIDR”的值为 192.168.56.0/24,然后点击 OK 按钮。如下图
现在 NAT 网络就设置好了。
设置 Host-Only 网络点击菜单 管理 -> 主机网络管理器,进入主机网络管理器界面,点击 创建 按钮, 添加 vboxnet0 网络,如下图
切换到 网卡 标签页
“IPv4 地址” 修改为 192.168.7.1
“IPv4 网络掩码” 修改为 255.255.255.0
切换到 DHCP 服务器 标签页,选中 “启用服务器”,按如下修改字段
“服务器地址” 修改为 192.168.7.2
“服务器网络掩码” 修改为 255.255.255.0
“最小地址” 修改为 192.168.7.11
“最大地址” 修改为 192.168.7.254
这里设置最小地址为 192.168.7.11, 单纯是为了和 NAT 服务器的地址的最后一位对应上,没有其他的意义。
现在已经设置好了 Host-Only 网络
创建和配置虚拟机 下载 CentOS 7.6 镜像请在 下载 CentOS 7.6 镜像
新建虚拟机节点在 VirtualBox 中点击新建虚拟机, 名称命名成 k8s-node1,并配置成 CPU 1 核,内存 2G,硬盘 50G (动态分配)。
选择启动开始安装 centos, 启动后会让提示选择 刚刚下载的 centos 7.6 的 iso 文件。
等待完成安装。
安装完成后,进入虚拟机设置,切换到 网络 标签
启用 网卡1,“连接方式”选择 NAT 网络, “界面名称”选择 NatNetwork。
启用 网卡2,“连接方式”选择 仅主机(Host-Only)网络, “界面名称”选择 vboxnet0。
此时虚拟机已经创建完毕,宿主如果想和虚拟机通信,需要通过 Host-Only 网络的 IP 地址。
可以通过一下命令查看 Host-Only 网络的 IP 地址
ip addr
结果如下:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:14:21:b0 brd ff:ff:ff:ff:ff:ff inet 192.168.56.11/24 brd 192.168.56.255 scope global noprefixroute enp0s3 valid_lft forever preferred_lft forever inet6 fe80::7734:1bd6:9da6:5d1f/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:1b:66:a7 brd ff:ff:ff:ff:ff:ff inet 192.168.7.11/24 brd 192.168.7.255 scope global noprefixroute dynamic enp0s8 valid_lft 1153sec preferred_lft 1153sec inet6 fe80::5f85:8418:37a4:f428/64 scope link noprefixroute valid_lft forever preferred_lft forever
则接口 enp0s8 为 Host-Only 的接口,ip 地址为 192.168.7.11 。
配置节点 1由于以后安装的需要,这里要做一些基础的配置。
更新系统
yum update -y
设置静态 IP
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
修改的内容如下