使用 Kubeadm 部署 K8S安装

1. 安装要求在开始之前,部署Kubernetes集群机器需要满足以下几个条件:

  • 一台或多台机器,操作系统 CentOS7.x-86_x64
  • 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
  • 可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点
  • 禁止swap分区
2. 准备环境角色IPHostNamemaster172.16.3.181k8smasternode1172.16.3.182k8snode1node2172.16.3.183k8snode22.1. 基础配置# 关闭防火墙[root@localhost ~]# firewall-cmd --state #查看防火墙状态[root@localhost ~]# systemctl stop firewalld# 停止防火墙的服务[root@localhost ~]# systemctl disable firewalld# 禁止开机启动# 关闭selinux[root@localhost ~]# setenforce 0# 临时(当前不用重启)[root@localhost ~]# sed -i 's/enforcing/disabled/' /etc/selinux/config# 永久(重启后生效)[root@localhost ~]# sestatus -v# 查看状态(需要重启生效)# 关闭swap[root@localhost ~]# swapoff -a# 临时[root@localhost ~]# sed -ri 's/.*swap.*/#&/' /etc/fstab# 永久# 根据规划设置主机名[root@localhost ~]# hostnamectl set-hostname k8smaster#其它的服务器为 k8snode1,k8snode2# 在master添加hosts[root@localhost ~]# cat >> /etc/hosts << EOF172.16.3.181 k8smaster172.16.3.182 k8snode1172.16.3.183 k8snode2EOF# 将桥接的IPv4流量传递到iptables的链(三台都执行)[root@localhost ~]# cat > /etc/sysctl.d/k8s.conf << EOFnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOF[root@localhost ~]# sysctl --system# 生效# 时间同步[root@localhost ~]# yum install ntpdate -y[root@localhost ~]# ntpdate time.windows.com3. 所有节点安装Docker/kubeadm/kubeletKubernetes默认CRI(容器运行时)为Docker,因此先安装Docker 。
3.1 安装Docker[root@localhost ~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo[root@localhost ~]# yum -y install docker-ce-19.03.11[root@localhost ~]# systemctl enable docker && systemctl start docker[root@localhost ~]# docker --version[root@localhost ~]# cat > /etc/docker/daemon.json << EOF{"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]}EOF 3.2 添加阿里云YUM软件源[root@localhost ~]# cat > /etc/yum.repos.d/kubernetes.repo << EOF[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF3.3 安装kubeadm,kubelet和kubectl由于版本更新频繁,这里指定版本号部署:
【使用 Kubeadm 部署 K8S安装】[root@localhost ~]# yum install -y kubelet-1.18.19 kubeadm-1.18.19 kubectl-1.18.19[root@localhost ~]# systemctl enable kubelet4. 部署Kubernetes Master在172.16.3.181(Master)执行 。
[root@localhost ~]# kubeadm init \--apiserver-advertise-address=172.16.3.181 \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version v1.18.19 \--service-cidr=10.96.0.0/12 \--pod-network-cidr=10.244.0.0/16说明:--apiserver-advertise-address=172.16.3.181#master的ip地址--image-repository registry.aliyuncs.com/google_containers#指定从什么位置拉取镜像--kubernetes-version=v1.18.19#指定k8s版本,根据具体版本进行修改--service-cidr=10.96.0.0/16#指定service网络的范围--pod-network-cidr=10.244.0.0/16#指定pod网络的范围
由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址 。
使用 Kubeadm 部署 K8S安装

文章插图
使用kubectl工具:
[root@k8smaster ~]# mkdir -p $HOME/.kube[root@k8smaster ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config[root@k8smaster ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config[root@k8smaster ~]# kubectl get nodesNAMESTATUSROLESAGEVERSIONk8smasterNotReadymaster5m40sv1.18.19[root@k8smaster ~]#

经验总结扩展阅读