使用kubeadm在Centos8上部署kubernetes1.18
环境:Windows系统centos8虚拟机
  1. 系统准备:查看系统版本,首先获取root权限,之后使用 cat /etc/centos-release查看
  2. centos8 部署kvm centos8 kubernetes_vim

  3. 配置网络,使用 vim /etc/sysconfig/network-scripts/ifcfg-enp0s3进入到配置文件,按i键进入insert模式,将配置信息修改为如下图所示。然后使用cat /etc/sysconfig/network-scripts/ifcfg-enp0s3查看配置信息。
  4. centos8 部署kvm centos8 kubernetes_vim_02

  5. 添加阿里源
  6. centos8 部署kvm centos8 kubernetes_centos_03

  7. 配置主机名
  8. centos8 部署kvm centos8 kubernetes_golang_04

  9. 关闭swap,注释swap分区,使用命令vim /etc/fstab进入swap分区,将最后一行注释掉。
  10. centos8 部署kvm centos8 kubernetes_golang_05

  11. 配置内核参数:
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

centos8 部署kvm centos8 kubernetes_centos_06

  1. 安装常用安装包
yum install vim bash-completion net-tools gcc -y

centos8 部署kvm centos8 kubernetes_vim_07

  1. 使用aliyun源安装docker-ce
//此处有坑,首先要执行前两条命令
yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
//第三条命令会默认安装最新版的docker-ce,而系统的containerd.io会以为版本太低而报错,所以忽略第三条命令yum -y install docker-ce
//通过下面两条命令获取较新版本的containerd.io
wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum install containerd.io-1.2.6-3.3.el7.x86_64.rpm
//通过下面命令检查所有的docker-ce版本
yum list docker-ce --showduplicates | sort -r
//选择一个较低版本的docker-ce软件包进行安装
yum -y install  docker-ce-3:19.03.8-3.el7

centos8 部署kvm centos8 kubernetes_centos8 部署kvm_08


centos8 部署kvm centos8 kubernetes_docker_09

  1. 上述步骤安装成功之后,添加aliyundocker仓库加速器。
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://fl791z1h.mirror.aliyuncs.com"]
}
EOF
//启动
systemctl daemon-reload
systemctl restart docker

centos8 部署kvm centos8 kubernetes_docker_10

  1. 添加阿里kubernetes源
//将下面所有的命令进行复制并粘贴
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

centos8 部署kvm centos8 kubernetes_centos_11

  1. 安装kubectl、kubelet、kubeadm(此处有坑,跳过该命令:yum install kubectl kubelet kubeadm
//下载1.18.0版本的kubectl、kubelet、kubeadm

yum install -y kubelet-1.18.0 
yum install -y kubeadm-1.18.0 
yum install -y kubectl-1.18.0

//使用下面的命令查看k8s所要求的镜像信息

kubeadm config images list

//按照下面的命令格式拉取所有需要的镜像,只需要修改containers/之后的路径

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.14

//之和通过docker images命令查看docker仓库中的镜像,发现所有的镜像都是以
//registry.aliyuncs.com/google_containers/开头,这需要我们手动进行修改所有的上面列出的所有tag
//修改方法如下:

docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.18.14 k8s.gcr.io/kube-proxy:v1.14.2

//删除以registry.aliyuncs.com/google_containers/开头的所有镜像

docker rmi registry.aliyuncs.com/google_containers/kube-proxy:v1.18.14

centos8 部署kvm centos8 kubernetes_docker_12

  1. 启动Kubeletsystemctl enable kubelet
  2. 初始化k8s集群
kubeadm init --kubernetes-version=1.18.0  \
--apiserver-advertise-address=192.168.122.21   \
--image-repository registry.aliyuncs.com/google_containers  \
--service-cidr=10.10.0.0/16 --pod-network-cidr=10.122.0.0/16
  1. 之后的步骤由于Windows虚拟机的性能太差,一直会停留在初始化的界面
总结

按照该步骤做到部署集群之前不会遇到问题,因为docker-ce和container.io版本冲突的问题也可以有效避免,但是由于虚拟机性能的问题,无法再继续进行配置工作。