Hyper-V虚拟机部署k8s集群

<1> 环境

本机环境:
Win10 2004 企业版

虚拟机:
Hyper-V

虚拟系统:
CentOS 8.5

<2> 准备工作

(1) 安装虚拟系统

声明
使用任何虚拟机均可, 但两种以上虚拟机安装在一台设备上可能引起冲突.
本文使用 Hyper-V 示范, 不熟悉 Hyper-V 安装及使用的朋友可以参见本人笔记: 使用 Hyper-V 安装 Linux

  1. 首先创建一个 CentOS 虚拟机, 镜像采用 CentOS-8.5.2111-x86_64-boot.iso, 下方有下载链接:
    链接:https://pan.baidu.com/s/12mLDGsNQugKpzYNujMen4g
    提取码:yyds

  2. 设置虚拟机最小内存为 2048M, 虚拟处理器设置为 2 个以上.

(2) 安装 Docker

注: 若安装软件时使用 yum 没有镜像源, 可以把以下文件拷贝到 /etc/yum.repos.d 中:
链接:https://pan.baidu.com/s/1Gnj0Mx6GPqr6OaflEN6ObQ
提取码:yyds

  1. 安装软件相关的依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 因为 docker 镜像在外网地址无法访问, 所以需要设置yum源为阿里云镜像地址
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 输入以下指令安装 docker:
yum -y install docker-ce
  1. 如果出现以下报错:
Failed to synchronize cache for repo 'AppStream', ignoring this repo.

修改镜像地址解决:
对照 /etc/yum.repos.d/CentOS-AppStream.repo 中的一下内容:

mirrorlist=http://mirrorlist.centos.org/?release=$releasever-stream&arch=$basearch&repo=AppStream&infra=$infra
baseurl=​​​​​​https://mirrors.aliyun.com/centos/8-stream/AppStream/$basearch/os/
  1. 安装成功后启动 docker
service docker start

此时在控制台输入 docker 会出现 docker 帮助页面
6. 设置开机启动

systemctl enable docker

<3> 安装 Kubernetes

控制台导入k8s安装源:

cat <<EOF > kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
mv kubernetes.repo /etc/yum.repos.d/

控制台输入下面语句:

yum install -y kubelet-1.22.4 kubectl-1.22.4 kubeadm-1.22.4

<4> 简要配置

启动 kubelet, docker, 并设置开机启动

systemctl enable kubelet
systemctl start kubelet
systemctl enable docker
systemctl start docker

修改 docker 配置文件

cat <<EOF > daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": ["https://ud6340vz.mirror.aliyuncs.com"]
}
EOF
mv daemon.json /etc/docker/

重启生效

systemctl daemon-reload
systemctl restart docker

<5> 克隆虚拟机制造节点

选择位置并导出虚拟机:
在这里插入图片描述
导入刚才导出的虚拟机:
在这里插入图片描述
按步骤操作:
在这里插入图片描述
克隆过来的新虚拟机要改一些存储路径.
在这里插入图片描述
完成后将复制得到的虚拟机改名区分:
在这里插入图片描述

<6> 配置节点

  1. 分别在两个虚拟机上修改主机名:
hostnamectl set-hostname master  主节点
hostnamectl set-hostname node1   辅节点
  1. 分别查询两个主机的 ip 地址, 输入**ifconfig** 指令得到 ip 地址:
    在这里插入图片描述
  2. 分别修改所有节点的 host 文件
vim /etc/hosts
172.23.20.116   master
172.23.19.108   node1
  1. 所有节点关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  1. 主节点上启动服务
kubeadm init --image-repository=registry.aliyuncs.com/google_containers

常见错误:
在这里插入图片描述

系统内存分配过小, 将虚拟机内存最小值设置为 2048M 以上.

在这里插入图片描述

输入指令: swapoff -a 关闭swap

在这里插入图片描述

输入 yum install iproute-tc 安装插件

在这里插入图片描述

删除指定文件夹内的旧 k8s 配置文件

成功:
会显示以下成功信息和登陆语句.
在这里插入图片描述
6. 按要求输入语句:

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
  1. 在子节点上输入最后一行的登陆语句:
kubeadm join 172.23.20.116:6443 --token fkv2g4.nf7zwdi1bf48wq4g \
	--discovery-token-ca-cert-hash sha256:f8a29e6959208df6dee821b1347d0d1ffa4e556aa4b5a4feaf615e2d443877ef 

启动成功信息:
在这里插入图片描述
8. 主节点输入一下命令查询连接的节点:

kubectl get nodes

在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐