Centos7.9使用kubeadm部署K8S集群
使用kubeadm部署一个k8s集群,单master+2worker节点。
1. 环境信息
- 操作系统:CentOS 7.9.2009
- 内存: 2GB
- CPU: 2
- 网络: 能够互访,能够访问互联网
hostname | ip | 备注 |
---|---|---|
k8s-master | 192.168.0.51 | master |
k8s-node1 | 192.168.0.52 | worker |
k8s-node2 | 192.168.0.53 | worker |
2. 准备工作
在所有节点(包括 Master 和 Worker 节点)上执行以下步骤。
2.1 linux基础配置
# 关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
# 关闭 swap
swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
# 关闭 selinux
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
# 设置时区
timedatectl set-timezone Asia/Shanghai
# 时间同步
yum -y install ntpdate
ntpdate time.windows.com
hwclock --systohc
# 将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system # 生效
2.2 安装 Docker
# 添加镜像源
curl https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
# 查看docker-ce的版本列表
yum list docker-ce --showduplicates | sort -r
# 安装20.10
yum -y install docker-ce-20.10.6-3.el7
systemctl start docker
systemctl enable docker
# 换成阿里Docker仓库
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://wnsrsn9i.mirror.aliyuncs.com"]
}
EOF
# 重启配置生效
systemctl restart docker
docker info
...
Registry Mirrors:
https://wnsrsn9i.mirror.aliyuncs.com/
...
2.3 安装 kubeadm、kubelet 和 kubectl
# 添加镜像源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[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
# 查看支持的版本
yum list kubelet --showduplicates | sort -r
# 安装
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
# 配置kubelet服务自启动
systemctl enable kubelet
3. 部署k8s集群
设置hosts:
# 设置主机名
hostnamectl set-hostname k8s-master # k8s-node1 / k8s-node2
hostname
# 配置 hosts(只在master执行)
cat >> /etc/hosts << EOF
192.168.0.51 k8s-master
192.168.0.52 k8s-node1
192.168.0.53 k8s-node2
EOF
初始化master:
# 运行初始化命令,apiserver地址为master地址
kubeadm init \
--apiserver-advertise-address=192.168.0.51 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
...
[addons] Applied essential addon: CoreDNS
[</