1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

CKA-搭建k8s

节点准备

为了成功部署Kubernetes集群,节点必须满足以下要求:

CKA-搭建k8s

  • 操作系统:CentOS 7.5以上
  • CPU:2核
  • 内存:4G以上
  • 硬盘:30G以上

在准备节点时,还需要进行一些系统参数配置,包括:

  1. 关闭swap:运行命令free -mswapoff -a
  2. 关闭防火墙:运行命令systemctl stop firewalldsystemctl status firewalld
  3. 关闭selinux:使用命令vim /etc/selinux/config编辑disable,然后运行setenforce 0临时关闭。使用getenforce查看selinux状态。
  4. 在master主机中添加hosts:使用命令vim /etc/hosts编辑
  5. 将桥接的IPV4流量传递到iptables的链:在Docker和Kubernetes的网络通信中,均使用iptables,因此不能随意清除Docker服务器中的iptables规则。运行命令net.bridge.bridge-nf-call-iptables=1systcl --system 生效
  6. 安装ntp,同步时间:使用命令yum -y install ntpntp datetime.windows.com

安装Docker/Kubeadm/Kubelet/Kubectl

所有节点上都需要安装Docker/Kubeadm/Kubelet/Kubectl。

  1. 安装Docker:使用命令yum -y install docker,然后启动服务systemctl enable dockersystemctl start docker
  2. 配置国内镜像加速站:使用命令sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json << 'EOF'{ "registry-mirrors":["https://jwrmyfx1.mirror.aliyuncs.com"]}EOF。然后执行命令sudo systemctl daemon-reloadsudo systemctl restart docker以生效
  3. 配置Kubernetes国内阿里云yum源:使用命令cat > /etc/yum.repos.d/k8s.repo << EOF [kubernetes] name=kubernetes enabled=1 baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg EOF
  4. 安装Kubeadm:使用命令yum -y install kubeadm kubectl kubelet,然后启动服务systemctl enable kubeletsystemctl start kubelet
  5. 手动启动Kubelet:使用命令systemctl start kubeletsystemctl enable kubelet

安装Kubenetes Master节点

执行kubeadm init命令以安装Kubernetes Master节点,例如:

kubeadm init --apiserver-advertise-address=10.57.98.169 --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

安装过程包括:

  1. 安装环境检查,包括swap是否关闭、机器配置是否符合以及kubelet服务是否开机自启。
  2. 下载镜像kubeadm config images pull拉取镜像,可以提前进行此操作。
  3. 生成证书并保存至/etc/kubernetes/pki(k8s,etcd)。
  4. 生成kubeconfig文件。
  5. 生成kubelet配置文件并启动,路径为/var/lib/kubelet/config.yaml。
  6. 启动Master节点组件,包括kube-apiserver、kube-controller-manager和kube-scheduler。
  7. 将一些配置文件存储到configmap中,用于其他节点初始拉取。
  8. 为Master节点打上污点,不允许Pod在其上面运行。
  9. 自动为kubelet颁发证书。
  10. 安装插件,包括CoreDNS和kube-proxy。

最后,使用以下命令拷贝kubectl工具用的kubeconfig到默认路径下:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

要在其他节点加入Master,使用以下命令:

kubeadm join 10.57.98.169:6443 --token 60npxf.33hynnget6h5b8ej --discovery-token-ca-cert-hash sha256:69250e213fb500b7ee8a260c5571500c857df05b5a31bac59c6803e3586ee730

添加Node节点

要将Node节点添加到Master中,使用以下命令:

kubeadm join 10.57.98.169:6443 --token 60npxf.33hynnget6h5b8ej --discovery-token-ca-cert-hash sha256:69250e213fb500b7ee8a260c5571500c857df05b5a31bac59c6803e3586ee730

可能会出现没有查看k8s-node节点的情况,但这不影响。可以运行kubectl get nodes查看节点是否识别到。

部署容器网络CNI

为了让Kubernetes集群中的容器可以互相访问,需要部署容器网络CNI,具体操作如下:

  1. 下载配置文件:使用命令wget https://docs.projectcalico.org/manifests/calico.yaml --no-check-certificate
  2. 编辑文件:修改配置文件中的参数为部署Master节点时使用的参数。
  3. 应用配置文件:使用命令kubectl apply -f calico.yaml
  4. 查看节点状态:使用命令kubectl get pods -n kube-systemkubectl get node

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/7409.html