您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

虚拟机安装Kubernetes集群(二)

本小节接上文,这一节我们将开始部署 K8S 集群。

1. 拷贝虚拟机

本次部署的 K8s 集群由 1 个 Master 节点和 3 个 Worker 节点组成。上一节中我们已经在 master-1 节点安装了 Docker 和 K8s 运行环境,另三个节点直接将这个虚拟机拷贝三份即可。

首先我们将 master-1 虚拟机关机。在 Virtual@R_263_2@ 管理控制台主,右键 master-1 虚拟机,点击复制...

选择专家模式:

进入专家模式,先设定新虚拟机,这里使用 worker-1 方便区分,副本类型选择 完全复制,MAC地址设定 为所有网卡重新MAC地址。然后点击复制,virtual@R_263_2@ 开始复制虚拟机。

复制完成后,可以看到控制台中出现了新的虚拟机 worker-1。

我们一共需要三个 worker 节点,接下来再重复上面的步骤两次,完成之后我们就拥有了四台虚拟机。

2. 配置静态IP和主机名

将所有虚拟机都启动起来,在虚拟机中使用ip a 命令查看各个虚拟机的IP地址,由于认系统使用的DHCP服务,网卡了当前网段内空闲的IP,地址我们希望各个节点的IP能固定起来,不要随意变动。

根据当前的网络状态(192.168.1.0/24网段),我们计划节点配置如下:

Tips
不同的网络环境的网段、IP 地址也不一致,需要根据自己的实际情况调整,设定变更的IP地址需要确认没有被占用。

1. 设定 master-1 的主机名

declare -x HOSTNAME="master1.node"
hostname $HOSTNAMEcat << EOF > /etc/hostname$HOSTNAMEEOFcat << EOF > /etc/hosts
127.0.0.1 $HOSTNAME192.168.1.200 master1.node
192.168.1.201 worker1.node
192.168.1.202 worker2.node
192.168.1.203 worker3.node
EOF

2. 设定 master-1 的 IP 地址:

# 认的网卡就是enp0s3vi /etc/syscon/network-scripts/ifcfg-enp0s3
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="enp0s3"
DEVICE="enp0s3"
ONBOOT="yes"
# 指定IP地址、网关和掩码,根据实际情况进行
IPADDR=192.168.1.200
GATEWAY=192.168.1.1
NETMASK=255.255.255.0
DNS1=223.6.6.6

保存更改:

# 重载网口配置nmcli c reload

输入命令hostnameip a 查看master-1的主机名和IP更改。

3. 对worker-1、 worker-2、worker-3节点进行上述操作,一定要注意主机名和IP地址变更。

3. 配置Master节点

使用宿主机的命令行工具 ssh 到 master-1 节点,先读取我们的 K8s 版本号:

version=`cat .k8s.version`

设定kubeadmkubeadm.yaml

cat << EOF > kubeadm.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConuration
controllerManager:
    extraArgs:
        horizontal-pod-autoscaler-use-rest-clients: "true"horizontal-pod-autoscaler-sync-period: "10s"node-monitor-grace-period: "10s"apiServer:
    extraArgs:
        runtime-con: "api/all=true"kubernetesVersion: "v$version"imageRepository: "registry.aliyuncs.com/google_containers"EOF

使用此进行 master 节点安装部署:

kubeadm init --con kubeadm.yaml

等待一段时间,部署完成,它会给我们一段

master-1上执行:

mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/consudo chown $(id -u):$(id -g) $HOME/.kube/con

Tips: 在worker节点上进行如下操作可以将节点到K8s集群,但现在还不急,先记下来。

kubeadm join 192.168.1.200:6443 --token 4hmk4a.4h0zrymxjmudhjmq \
    --discovery-token-ca-cert-hash sha256:edf04a8954bb2729d8d603e14e802e72109ae10346503b5b283481ce08b02186

执行kubectl get nodes查看当前节点的状态:

发现状态为NotReady,原因是我们尚未配置网络相关的,一些跟k8s服务相关容器无法连接到网络。

常用的容器网络接口有 Flannel 、Calico、 等,这里我们选择简单易用的 网络

kubectl apply -f https://cloud..works/k8s/net?k8s-version=$version

安装完毕后,查看当前节点状态变为Ready

4. 配置 Worker 节点

在三个 Worker 节点上执行之前记录的节点指令

Tips: 记得替换成自己操作环境中的指令

kubeadm join 192.168.1.200:6443 --token 4hmk4a.4h0zrymxjmudhjmq \
    --discovery-token-ca-cert-hash sha256:edf04a8954bb2729d8d603e14e802e72109ae10346503b5b283481ce08b02186

耐心等待 3-5 分钟,在 master 节点执行kubectl get nodes -o wide查看节点详情,所有节点状态均为Ready

至此,K8s 集群已经初步搭建完成。

5. 小结

我们使用 kubeadm 部署了“1 master + 3 worker” Kubernetes 集群,使用 网络,已初步可用。


联系我
置顶