proceso de instalación
requerimientos de instalación
Preparación ambiental
Role | IP |
---|---|
maestro | 10.0.0.13 |
nodo1 | 10.0.0.5 |
nodo2 | 10.0.0.16 |
#关闭防火墙 (如果是云服务器不需要管默认关闭)(每台机子都要)
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 <hostname>
# 在master添加hosts
cat >> /etc/hosts << EOF
10.0.0.13 kmaster
10.0.0.5 knode1
10.0.0.16 knode2
EOF
# 将桥接的IPv4流量传递到iptables的链(每台机子都要)
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system # 生效
# 时间同步(每台机子都要)
yum install ntpdate -y
ntpdate time.windows.com
Instalar ventana acoplable
Consulte la instalación y desinstalación sin cerebro de Centos7 de Docker y la aceleración de imágenes
Aviso:所有机子都要安装Docker/kubeadm/kubelet
Agregue la fuente de software Alibaba Cloud YUM
$ 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
Instale kubeadm, kubelet y kubectl
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
systemctl enable kubelet
Implementar el nodo maestro de Kubernetes
kubeadm init \
--apiserver-advertise-address=10.0.0.13 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
Implementar nodos de nodos de Kubernetes
Después de ejecutar el comando anterior, se generará el siguiente comando
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
En este punto podemos comprobar la compilación.
kubectl get nodes
Si no se muestra listo, no ha tenido éxito.
Necesitamos vincular el comando generado anteriormente en el nodo.
kubeadm join 192.168.1.11:6443 --token esce21.q6hetwm8si29qxwn \
--discovery-token-ca-cert-hash sha256:00603a05805807501d7181c3d60b478788408cfe6cedefedb1f97569708be9c5
Este comando tiene un valor predeterminado de 24 horas. Cuando caduque, el token ya no estará disponible. En este momento, es necesario volver a crear el token.
kubeadm token create --print-join-command
Implemente el complemento de red CNI (todos los nodos deben ejecutarse)
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
La instalación y la velocidad de ejecución aquí son relativamente lentas. Podemos esperar un momento
y verificar si el ESTADO se está ejecutando después de ejecutar el comando anterior.
kubectl get pods -n kube-system
kubectl get nodes
Probar el clúster de Kubernetes
kubectl create deployment nginx --image=nginx
# 暴露端口
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
Dirección de acceso: http://NodeIP:Port El servicio en la nube debe liberar las reglas de seguridad