首页 > 其他分享 >一起学kubernetes系列(1)‌明明白白安装Kubernetes1.16.2

一起学kubernetes系列(1)‌明明白白安装Kubernetes1.16.2

时间:2022-10-17 22:32:47浏览次数:57  
标签:kubernetes 明明白白 节点 master yum docker kubeadm Kubernetes1.16

前言

首次安装Kubernetes我们采用kubeadm来安装单Master节点的方式,安装最新版的Kubernetes和Calico,一步一步循序渐进。

介绍

Master:集群控制管理节点,所有的命令都经由master处理。

一起学kubernetes系列(1)‌明明白白安装Kubernetes1.16.2_ico

Worker:是kubernetes集群的工作负载节点。Master为其分配工作,当某个Node宕机时,Master会将其工作负载自动转移到其他节点。

一起学kubernetes系列(1)‌明明白白安装Kubernetes1.16.2_docker_02

服务器配置说明

192.168.190.10 master1 4核CPU、8G内存、100G磁盘 192.168.190.11 node1 8核CPU、48G内存、400G磁盘 192.168.190.12 node2 8核CPU、48G内存、400G磁盘 192.168.190.13 node3 8核CPU、48G内存、400G磁盘


安装的软件

系统:CentOS Linux release 7.7.1908 内核:Linux master1 5.3.0-1.el7.elrepo.x86_64 软件:Kubernetes 1.16.2 网络:Calico 3.10.0 容器:docker 18.09.9

初始化系统(需要在所有机器执行)

1. ​​#修改系统内核参数​​
2. ​​cat <<EOF > /etc/sysctl.d/k8s.conf​​
3. ​​net.ipv4.ip_forward = 1​​
4. ​​net.bridge.bridge-nf-call-ip6tables = 1​​
5. ​​net.bridge.bridge-nf-call-iptables = 1​​
6. ​​EOF​​
7. ​​sysctl --system​​
8. ​​#关闭selinux​​
9. ​​setenforce 0​​
10. ​​sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config​​
11. ​​#禁止firewalld​​
12. ​​systemctl stop firewalld​​
13. ​​systemctl disable firewalld​​
14. ​​#注意不要创建交换分区​​
15. ​​swapoff -a​​

安装docker(需要在所有机器执行)

1. ​​#安装依赖的组件​​
2. ​​yum install -y yum-utils nfs-utils device-mapper-persistent-data lvm2​​
3. ​​#添加docker 阿里云的仓库,加速下载​​
4. ​​yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo​​
5. ​​#查看docker的所有版本​​
6. ​​yum list docker-ce --showduplicates | sort -r​​
7. ​​#官方文档建议支持最高的docker版本为18.09.x,所以安装该版本​​
8. ​​yum install -y docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io​​
9. ​​#官方文档建议的docker配置:cgroupdriver=systemd,可提高稳定性。修改使用国内docker源​​
10. ​​mkdir /etc/docker​​
11. ​​cat > /etc/docker/daemon.json <<EOF​​
12. ​​{​​
13. ​​ "registry-mirrors": ["https://registry.docker-cn.com"],​​
14. ​​ "exec-opts": ["native.cgroupdriver=systemd"],​​
15. ​​ "log-driver": "json-file",​​
16. ​​ "log-opts": {​​
17. ​​ "max-size": "100m"​​
18. ​​ },​​
19. ​​ "storage-driver": "overlay2",​​
20. ​​ "storage-opts": [​​
21. ​​ "overlay2.override_kernel_check=true"​​
22. ​​ ]​​
23. ​​}​​
24. ​​EOF​​
25. ​​systemctl restart docker​​
26. ​​systemctl enable docker​​
27. ​​#参考官方文档:https://kubernetes.io/docs/setup/production-environment/container-runtimes/#docker​​

安装kubelet kubeadm kubectl(需要在所有机器执行)

1. ​​#使用阿里云kubernetes源​​
2. ​​cat <<EOF > /etc/yum.repos.d/kubernetes.repo​​
3. ​​[kubernetes]​​
4. ​​name=Kubernetes​​
5. ​​baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64​​
6. ​​enabled=1​​
7. ​​gpgcheck=0​​
8. ​​repo_gpgcheck=0​​
9. ​​gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg​​
10. ​​ http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg​​
11. ​​EOF​​
12. ​​按最新版的组件​​
13. ​​yum install -y kubelet-1.16.2 kubeadm-1.16.2 kubectl-1.16.2​​
14. ​​systemctl start kubelet​​
15. ​​systemctl enable kubelet​​
16. ​​#注意:kubelet会启动失败,需要在 kubeadm init 的操作后,kubelet 才能正常启动。​​

初始化 master 节点(仅在master节点执行)

1. ​​#设置变量​​
2. ​​#APISERVER_NAME 不能是 master 的 hostname​​
3. ​​export APISERVER_NAME=apiserver​​
4. ​​export MASTER_IP=192.168.190.10​​
5. ​​#POD_SUBNET为容器组所在的网段,不能与master节点worker节点所在的网段重叠​​
6. ​​export POD_SUBNET=10.66.0.1/16​​
7. ​​echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts​​
8. ​​#创建kubeadm的配置文件,使用阿里云的镜像源​​
9. ​​cat <<EOF >kubeadm-config.yaml​​
10. ​​apiVersion: kubeadm.k8s.io/v1beta2​​
11. ​​kind: ClusterConfiguration​​
12. ​​kubernetesVersion: v1.16.2​​
13. ​​imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers​​
14. ​​controlPlaneEndpoint: "${APISERVER_NAME}:6443"​​
15. ​​networking:​​
16. ​​ serviceSubnet: "10.96.0.0/16"​​
17. ​​ podSubnet: "${POD_SUBNET}"​​
18. ​​ dnsDomain: "cluster.local"​​
19. ​​EOF​​
20. ​​#安装master节点,根据您服务器网速的情况,您需要等候 3 - 10 分钟​​
21. ​​kubeadm init --config=kubeadm-config.yaml --upload-certs​​
22. ​​#配置 kubectl​​
23. ​​rm -rf /root/.kube/​​
24. ​​mkdir /root/.kube/​​
25. ​​cp -i /etc/kubernetes/admin.conf /root/.kube/config​​
26. ​​# 安装 calico 网络插件​​
27. ​​wget https://docs.projectcalico.org/v3.10/manifests/calico.yaml --no-check-certificate​​
28. ​​sed -i "s#192\.168\.0\.0/16#${POD_SUBNET}#" calico.yaml​​
29. ​​kubectl apply -f calico.yaml​​

检查master节点安装状况(仅在master节点执行)

  1. ​#注意:在没安装worker节点前,calico-kube-controllers,calico-node,2个coredns 这4个pod不是Running状态是正常的,其它pod需要是Running状态。​
  2. ​watch kubectl get pod -n kube-system -o wide​
  3. ​#查看 master 节点初始化结果​
  4. ​kubectl get nodes -o wide​
  5. ​#获取worker节点执行kubeadm join的命令及参数​
  6. ​kubeadm token create --print-join-command​

初始化所有的worker节点(仅在worker节点执行)

1. ​​export MASTER_IP=192.168.190.10​​
2. ​​export APISERVER_NAME=apiserver​​
3. ​​echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts​​
4. ​​#把在master节点获取的命令复制到worker节点执行​​
5. ​​kubeadm join apiserver:6443 --token ewlmyi.wu8u8f2a0ffypuur --discovery-token-ca-cert-hash sha256:42c1c2d45f9b21d918ee7fd40acf6f7eaf595ca925d54271dbe0fd31ae75ce8d​​

检查是否全部安装完成(仅在master节点执行)

1. ​​#必须所有pod都是Running状态才安装成功。​​
2. ​​watch kubectl get pod -n kube-system -o wide​​
3. ​​kubectl get nodes -o wide​​

删除worker节点

1. ​​#只在 worker 节点执行​​
2. ​​kubeadm reset​​
3. ​​#只在 master 节点执行​​
4. ​​kubectl delete node node1​​
5. ​​#如果需要重新初始化 master 节点,请在master节点执行 kubeadm reset 操作。​​

一起学kubernetes系列(1)‌明明白白安装Kubernetes1.16.2_linux_03



标签:kubernetes,明明白白,节点,master,yum,docker,kubeadm,Kubernetes1.16
From: https://blog.51cto.com/starsliao/5764550

相关文章