Kubernetes -- 部署k8s集群
我这里指定安装版本,不指定的话会安装最新的,就可能出现版本问题导致安装失败(安装之前可以先查一下安装的docker对应支持的版本在进行安装)Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。4.安装kubeadm,kubelet和kubectl(一定要注意版本,我就是因为版本问题困扰了我很久)#设置开机自启,因为kub
目录
2.安装 Docker、kubeadm、kubelet【所有节点】
一、部署k8s的两种方式:
目前部署Kubernetes集群主要有两种方式:
1. kubeadm
Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。
2. 二进制包
从github下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。
这里我使用的是kubeadm的方式部署
二、环境准备
机器硬件配置:
- 建议最小硬件配置:2核CPU、2G内存、20G硬盘
- 服务器最好可以访问外网,会有从网上拉取镜像需求,如果服务器不能上网,需要提前下载对应镜像并导入节点
软件准备:
- CentOS Linux release 7.9.2009 (Core)
- Docker:20-ce
- k8s:1.23.5(版本很重要,不然会出现问题)
服务器规划:(本实验采用虚拟机)
- k8s-master :192.168.174.161
- k8s-node1 :192.168.174.162
- k8s-node2 :192.168.174.163
- k8s-node3 :192.168.174.165
三、初始化配置
1.安装环境配置:所有机器上操作
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0 # 临时
# 关闭swap
swapoff -a # 临时
sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久
# 根据规划设置主机名
hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2
hostnamectl set-hostname k8s-node3
# 在master添加hosts
cat >> /etc/hosts << EOF
192.168.178.161 k8s-master
192.168.178.162 k8s-node1
192.168.178.163 k8s-node2
192.168.178.165 k8s-node3
EOF
#追加到内核会读取的参数文件里
cat <<EOF >> /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.ip_forward = 1
vm.swappiness=0
EOF
#让内核重新读取数据,加载生效
sysctl -p
2.安装 Docker、kubeadm、kubelet【所有节点】
#下载docker所需源,安装docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
#配置 Docker使用systemd作为默认Cgroup驱动
cat <<EOF > /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
#设置docker开机自启,启动docker
systemctl enable docker && systemctl start docker
#查看docker信息,进行确认
docker info
3.添加kubernetes YUM软件源
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
4.安装kubeadm,kubelet和kubectl(一定要注意版本,我就是因为版本问题困扰了我很久)
#我这里指定安装版本,不指定的话会安装最新的,就可能出现版本问题导致安装失败(安装之前可以先查一下安装的docker对应支持的版本在进行安装)
yum install -y kubelet-1.23.5 kubeadm-1.23.5 kubectl-1.23.5
#设置开机自启,因为kubelet是k8s在node节点上的代理,必须开机要运行的
systemctl enable kubelet
四、部署k8s-master【master执行】
kubeadm部署(需要等上一会)
kubeadm init \
--apiserver-advertise-address=192.168.178.161 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.5 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all
- --apiserver-advertise-address 集群通告地址
- --image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
- --kubernetes-version K8s版本,与上面安装的一致
- --service-cidr 集群内部虚拟网络,Pod统一访问入口
- --pod-network-cidr Pod网络,与下面部署的CNI网络组件yaml中保持一致
拷贝k8s认证文件
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
至此,master就配置好了
五、配置k8s的node节点【node节点操作】
复制master配置完成后出现的kubeadm join(上图)到结尾
kubeadm join 192.168.174.161:6443 --token rc2n3z.1iwfb6ideksdasw8 \
--discovery-token-ca-cert-hash sha256:55b3ad3fb9b0e0a37059be13439f3ca93720b98699e105f332157da77768d35b
到node节点上执行,就可以加入集群了
六、验证是否加入成功 【master上运行】
kubectl get nodes
[root@k8s-master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master NotReady control-plane,master 3h19m v1.23.5
k8s-node1 NotReady <none> 3h12m v1.23.5
k8s-node2 NotReady <none> 3h7m v1.23.5
k8s-node3 NotReady <none> 3h7m v1.23.5
出现以上效果就成功了
参考:
更多推荐
所有评论(0)