目录
2.安装 Docker、kubeadm、kubelet【所有节点】
目前部署Kubernetes集群主要有两种方式:
Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。
从github下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。
这里我使用的是kubeadm的方式部署
- # 关闭防火墙
- 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
- #下载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
- 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
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

拷贝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就配置好了
复制master配置完成后出现的kubeadm join(上图)到结尾
kubeadm join 192.168.174.161:6443 --token rc2n3z.1iwfb6ideksdasw8 \
--discovery-token-ca-cert-hash sha256:55b3ad3fb9b0e0a37059be13439f3ca93720b98699e105f332157da77768d35b
到node节点上执行,就可以加入集群了
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 NotReady3h12m v1.23.5
k8s-node2 NotReady3h7m v1.23.5
k8s-node3 NotReady3h7m v1.23.5
出现以上效果就成功了
参考: