使用kubeadm在Centos8上部署kubernetes1.18
环境:Windows系统centos8虚拟机
- 系统准备:查看系统版本,首先获取root权限,之后使用
cat /etc/centos-release
查看 - 配置网络,使用
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
进入到配置文件,按i键进入insert模式,将配置信息修改为如下图所示。然后使用cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
查看配置信息。 - 添加阿里源
- 配置主机名
- 关闭swap,注释swap分区,使用命令
vim /etc/fstab
进入swap分区,将最后一行注释掉。 - 配置内核参数:
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
- 安装常用安装包
yum install vim bash-completion net-tools gcc -y
- 使用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
- 上述步骤安装成功之后,添加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
- 添加阿里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
- 安装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
- 启动Kubelet:
systemctl enable kubelet
- 初始化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
- 之后的步骤由于Windows虚拟机的性能太差,一直会停留在初始化的界面
总结
按照该步骤做到部署集群之前不会遇到问题,因为docker-ce和container.io版本冲突的问题也可以有效避免,但是由于虚拟机性能的问题,无法再继续进行配置工作。