Directorio de artículos
-
- 1. Información de planificación de la arquitectura del clúster
- 2. Preparación para la inicialización del sistema (funcionamiento síncrono de todos los nodos)
- 3. Instale kubeadm (operación síncrona de todos los nodos)
- 4. Inicializar el clúster K8S (operación de nodo maestro)
- 5. Agregar nodos Node al clúster K8S
- 6. Instale el complemento de red Calico
- 7. Prueba la disponibilidad de CoreDNS
1. Información de planificación de la arquitectura del clúster
- Segmento de red de pod: 10.244.0.0/16
- segmento de red de servicio: 10.10.0.0/16
- Nota: Los segmentos de la red de pod y servicio no pueden entrar en conflicto. Si hay un conflicto, la instalación del clúster K8S fallará.
información del servidor:
nombre de la CPU | dirección IP | Sistema operativo |
---|---|---|
k8s-maestro-1 | 16.32.15.123 | 20.04.1-Ubuntu |
k8s-nodo-1 | 16.32.15.124 | 20.04.1-Ubuntu |
2. Preparación para la inicialización del sistema (funcionamiento síncrono de todos los nodos)
1. Para cambiar de usuario, los usuarios realizan root
las siguientes operacionesroot
sudo -i
2. Configure la fuente del almacén nacional e instale las dependencias requeridas.
Nota: El siguiente es Ubuntu20.04
un ejemplo de la fuente del almacén del sistema. Si la versión del sistema es diferente, puede ir al almacén espejo de Ali para encontrar la versión correspondiente. !
cd /etc/apt
cp sources.list sources.list_default
> sources.list
cat >> sources.list << EOF
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
EOF
apt-get update
apt-get upgrade
Instalar las dependencias requeridas
apt-get install -y apt-transport-https ca-certificates curl software-properties-common gnupg2
3. Agregar resolución de nombre de dominio local
cat >> /etc/hosts << EOF
16.32.15.123 k8s-master-1
16.32.15.124 k8s-node-1
EOF
Modifique el nombre de host, copie en el servidor correspondiente para ejecutar
hostnamectl set-hostname k8s-master-1 && bash
hostnamectl set-hostname k8s-node-1 && bash
4. Instale ntpdate
para mantener la hora del servidor constante
apt install ntpdate
ntpdate ntp1.aliyun.com
Configure tareas cronometradas para sincronizar automáticamente la hora a la 1:00 am todos los días
crontab -e
0 1 * * * ntpdate ntp1.aliyun.com
Ctrl+c
Ctrl+x
Y
Enter
Guardar y Salir
Verifique que la tarea programada esté configurada correctamente
crontab -l
5. Cierra la partición de intercambio
swapoff --all
Prohibir el arranque desde la partición de intercambio de intercambio de arranque
sed -i -r '/swap/ s/^/#/' /etc/fstab
6. Instale Docker
para agregar Key a la base de datos local de confianza
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
Agregar repositorio de Docker
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
$(lsb_release -cs) \
stable"
Instalar ventana acoplable
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
Configurar el controlador Docker
cat <<EOF | tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://aoewjvel.mirror.aliyuncs.com"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
Inicie Docker && únase al arranque automático
mkdir -p /etc/systemd/system/docker.service.d
systemctl daemon-reload
systemctl restart docker
systemctl enable --now docker
systemctl status docker
3. Instale kubeadm (operación síncrona de todos los nodos)
1. Configure la fuente nacional de yum, y el requisito previo de instalación depende de
apt-get update && apt-get install -y apt-transport-https curl
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main
EOF
Instalar dependencias
apt-get update && apt-get install -y apt-transport-https curl
Error informado durante la ejecución:
Solución:
Nota: La CLAVE aquí no es única, la marqué con un círculo rojo en la imagen de arriba, copie su CLAVE y ejecute nuevamente
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B53DC80D13EDEF05
apt-get update && apt-get install -y apt-transport-https curl
2. Instale kubeadm, kubelet, kubectl
apt-get install -y kubelet=1.23.1-00 kubeadm=1.23.1-00 kubectl=1.23.1-00
Agregar inicio automático
systemctl enable kubelet
Marcar el paquete especificado como retenido, impidiendo las actualizaciones automáticas de software
apt-mark hold kubelet kubeadm kubectl
4. Inicializar el clúster K8S (operación de nodo maestro)
kubeadm init \
--apiserver-advertise-address 16.32.15.123 \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12 \
--ignore-preflight-errors=SystemVerification
Explicación de la información del parámetro de inicialización:
-
repositorio de imágenes: especifique la fuente de imagen de Alibaba Cloud en China
-
pod-network-cidr: segmento de red de pod
-
service-cidr: segmento de red de servicio
-
apiserver-advertise-address: apiserver地址
-
ignore-preflight-errors: ignore algunos errores comprobados
Dado que kubernetes usa el certificado CA por defecto, es necesario configurar el certificado para que kubectl acceda al Master
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Probar kubectl
si se puede usar el comando
kubectl get node
5. Agregar nodos Node al clúster K8S
1. El comando kubeadm obtiene los que se unen al clúster token
(ejecutado por el nodo maestro)
kubeadm token create --print-join-command
kubeadm join 16.32.15.123:6443 --token kczwmr.x2ekr2pjq5iuhquh --discovery-token-ca-cert-hash sha256:2c8b60dfb13094634cd1476c902dd08e23042a1fb0d23f998c361d30655071f1
2. ¡Copie lo adquirido para unir el clúster token
al nodo Nodo! (ejecución de nodo de nodo)
kubeadm join 16.32.15.123:6443 --token kczwmr.x2ekr2pjq5iuhquh --discovery-token-ca-cert-hash sha256:2c8b60dfb13094634cd1476c902dd08e23042a1fb0d23f998c361d30655071f1
3. Ver información del nodo del clúster (ejecutado por el nodo maestro)
kubectl get node
Bien, como puede ver en la figura anterior, el nodo se unió correctamente al clúster K8S.
6. Instale el complemento de red Calico
Dado que el funcionario calico está en el extranjero, la descarga es relativamente lenta, después de todo, hay un muro. Descargué calico.yaml
el archivo y lo puse gitee
en el doméstico. A continuación, usaré la dirección nacional para descargar calico.yaml
el archivo, ¡por favor sepa!
El nodo maestro ejecuta:
wget -O /root/calico.yaml https://gitee.com/qinziteng/K8S/raw/master/YMAL/calico.yaml
kubectl apply -f calico.yaml
Ver el estado del pod del clúster:
kubectl get pods -n kube-system
Compruebe el estado del nodo del nodo del clúster:
kubectl get node
Como arriba, es correcto, si aún no está listo, debe esperar un tiempo ~
7. Prueba la disponibilidad de CoreDNS
1. Crea un contenedor de prueba
kubectl run busybox --image busybox:1.28 --restart=Never --rm -it busybox -- sh
2. Pruebe si se puede analizar normalmente
nslookup kubernetes.default.svc.cluster.local
Como se muestra en la figura anterior, se puede analizar normalmente.Hasta ahora, el clúster de la versión K8S1.23 basado en el sistema operativo Ubuntu20.04 se ha implementado con éxito y es correcto.