0.参考
- 使用kubeadm安装Kubernetes 1.15
- 使用kubeadm在Centos8上部署kubernetes1.18
- centos7 使用kubeadm 快速部署 kubernetes 国内源
- kubeadm安装kubernetes 1.13.2多master高可用集群
- 官方: 使用 kubeadm 创建高可用集群
注意: 从一、二、三所有节点都执行,四master节点执行master操作,node节点执行添加节点操作。
一、前置设置
-
最好升级下yum package
yum upgrade -y
-
设置hostname
hostnamectl set-hostname k8s-master hostnamectl set-hostname k8s-node hostnamectl --static #查看设置结果
-
关闭swap分区
swapoff -a
-
关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
-
禁用SELINUX
vi /etc/selinux/config SELINUX=disabled
-
修改网络参数
cat <<EOF > /etc/sysctl.d/k8s.conf vm.swappiness = 0 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF
使设置生效:
sysctl --system
-
Node节点开启ipvs
cat > /etc/sysconfig/modules/ipvs.modules <<EOF #!/bin/bash modprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack_ipv4 EOF 使设置生效: chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
二、安装docker
-
添加yum源
yum install -y yum-utils device-mapper-persistent-data lvm2 && \ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && \ yum makecache fast
-
选择版本并安装
yum list docker-ce.x86_64 --showduplicates |sort -r
yum install -y --setopt=obsoletes=0 docker-ce-18.09.7-3.el7
-
配置并启动
tee /etc/docker/daemon.json <<-'EOF' { "exec-opts": ["native.cgroupdriver=systemd"] } EOF
启动:
systemctl daemon-reload && \ systemctl restart docker &&\ systemctl enable docker &&\ systemctl status docker.service
三、安装kubeadm等相关组件
-
添加阿里kubernetes源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF
-
安装
– 查看版本yum list -y kubeadm.x86_64 --showduplicates
– 安装想要的版本yum -y install kubectl-1.18.2-0 kubelet-1.18.2-0 kubeadm-1.18.2-0
四、启动master
-
安装master1
kubeadm init --kubernetes-version=1.18.2 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.10.0.0/16 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=机器内网IP
-
为master节点添加config 文件
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
查看健康性:
kubectl get cs
-
打包/etc/kubernetes
cd /etc && tar -czf kubernetes.tar.gz kubernetes
-
传送包到其他master节点
scp kubernetes.tar.gz root@49.232.93.201:/etc
cd /etc && \
tar -zvxf kubernetes.tar.gz && \
cd kubernetes && \
rm -rf rm -rf manifests/ &&\
cd pki && \
rm -rf apiserver* front-proxy-client.* && \
rm -rf ectd/healthcheck.* etcd/peer.* etcd/server.*
[root@VM-64-91-centos kubernetes]# tree
.
|-- admin.conf
|-- controller-manager.conf
|-- kubelet.conf
|-- pki
| |-- ca.crt
| |-- ca.key
| |-- etcd
| | |-- ca.crt
| | `-- ca.key
| |-- front-proxy-ca.crt
| |-- front-proxy-ca.key
| |-- sa.key
| `-- sa.pub
`-- scheduler.conf
[root@VM-64-91-centos pki]# tree
.
|-- ca.crt
|-- ca.key
|-- etcd
| |-- ca.crt
| `-- ca.key
|-- front-proxy-ca.crt
|-- front-proxy-ca.key
|-- sa.key
`-- sa.pub
-
按安装完后的提示添加节点
kubeadm join 172.21.64.129:6443 --token gxeb8n.iorpmceaazseoxjk \ --discovery-token-ca-cert-hash sha256:65a0a4c88a6e22d1183ba9d69c5db809c108b4e9f643fe4c374f77623900
-
查看pod和node
-
安装flannel 网络插件
上文中有两个pod处于pending是没有安装相应的网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
安装后如下:
或者安装calico k8s网络插件,功能更和flannel 等效
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml