De hecho, publiqué el artículo en esta sección hace mucho tiempo, pero no está lo suficientemente detallado y el nivel no está claro. Cuando lo desplegué hoy, vi que era terrible (aunque el despliegue fue exitoso), y se puede considerar una confesión al hoyo anterior. Este artículo puede ser más aburrido, pero crea que esta no es mi intención. Esta debe ser una de las notas más concisas. Créame, esto definitivamente no es un desastre.
Este artículo se divide principalmente en tres partes, que son la inicialización del sistema, la instalación de la ventana acoplable, la instalación de Kubernetes, la verificación de la prueba y la eliminación de la biblioteca.
Directorio de artículos
inicialización del sistema
Preste atención a la palabra todo detrás, que significa todo (maestro, nodo)
Maestro: solo en maestro
nodo: solo en nodo
Apague el firewall ( all
)
## 临时关闭
systemctl stop firewalld
## 永久关闭
systemctl disable firewalld
## 验证防火墙是否关闭
systemctl status firewalld
El efecto es el siguiente
Cerrar selinux ( all
)
# 临时关闭
setenforce 0
# 永久
sed -i 's/enforcing/disabled/' /etc/selinux/config
Cerrar intercambio ( all
)
# 临时
swapoff -a
# 永久
sed -ri 's/.*swap.*/#&/' /etc/fstab
# 一条命令完成所有
systemctl stop firewalld && setenforce 0 && swapoff -a && systemctl status firewalld
Establecer nombre de host ( all
)
# 设置名称(k8s-m-1)忽略大写字母
hostnamectl set-hostname master
# 验证
hostname
Sincronización de tiempo ( All
)
yum install -y ntpdate && ntpdate time.windows.com
Al Master
agregar el nombre de host ( master
)
# 设置
cat >> /etc/hosts << EOF
masterIp master
node1Ip node1
node2Ip node2
EOF
# example
cat >> /etc/hosts << EOF
192.168.50.182 master
192.168.50.252 node
EOF
Verifique, en este punto
ping node
, vea si puede hacer ping
Pase el tráfico IPV4 en puente a la cadena de iptables ( all
)
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
# 生效
sysctl --system
Instalar Docker
Eliminar ventana acoplable (opcional)
# You can use scripts for one click installation,You may need to type enter at the end
# remove docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# Set up repository
sudo yum install -y yum-utils
wget https:/mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-18.06.1.ce-3.e17
Instalar ventana acoplable
# Use Aliyun Docker
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# install docker from yum
yum install -y docker-ce docker-ce-cli containerd.io
# cat version
docker --version
# 配置镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://etdea28s.mirror.aliyuncs.com"]
}
EOF
# reload
sudo systemctl daemon-reload
# 配置开启自启
sudo systemctl enable docker
# start docker
systemctl restart docker
Verificar la aceleración de la imagen de la ventana acoplable
Ingrese en el terminal docker info
, el diagrama de efectos es el siguiente
Completo ~
Instalar Kubernetes
Configurar la fuente de espejo de Ali (todos)
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=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
安装 kubectl kubelet bebeadm ( all
)
# install kubectl kubelet kubeadm
yum install -y kubectl kubelet kubeadm --disableexcludes=kubernetes
#--disableexcludes=kubernetes 禁掉除了这个之外的别的仓库
# set boot on opening computer
systemctl enable kubelet
inicialización de kubeadm ( Master
)
kubeadm init \
--apiserver-advertise-address=masterIp \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.10.0.0/16 \
--pod-network-cidr=10.122.0.0/16
# eg
kubeadm init \
--apiserver-advertise-address=192.168.50.182 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
Si no hay ningún error, kubeadm comienza a inicializarse correctamente
Espere unos minutos, la inicialización se realizó correctamente, como se muestra en la siguiente figura.
Iniciar el clúster (maestro)
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 node
# 正常打印出信息即,成功
El nodo se une al clúster (nodo)
# 例如
kubeadm join 192.168.50.182:6443 --token 7t70cl.hr22v89g7wkqojdf \
--discovery-token-ca-cert-hash sha256:d0541c10506744981838a7d4ce504eb69d28fdcfc8e1261373505c42047be33f
Esto lo proporciona el sistema después de que se completa la inicialización. Consulte su propia salida
# 默认token24hour后过期,获取新token命令如下:
kubeadm token create --print-join-command
Implementar componentes de red CNI
# 由于是国外的源,国内无法访问。我们需要添加镜像,若存在,则忽略
echo "199.232.28.133 raw.githubusercontent.com" >> /etc/hosts
# 部署CNI网络组件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# 开启IPVS,修改ConfigMap的kube-system/kube-proxy中的模式为ipvs
kubectl edit cm kube-proxy -n kube-system
# 将空的data -> ipvs -> mode中替换如下
mode: "ipvs"
Todos están listos en este momento, de la siguiente manera
Prueba de verificación
# kubectl create deployment NAME --image=image -- [COMMAND] [args...] [options]
# 简单部署nginx
kubectl create deployment nginx --image=nginx
# 对外暴露端口
kubectl expose deployment nginx --port=80 --type=NodePort
# 查看状态
kubectl get pod,svc
# 查看命名空间
kubectl get all -n kube-system
Diagrama esquemático de implementación exitosa
Exponer puertos aleatorios
Accede a cualquier ip en el clúster
Completo ~
Complementar, eliminar el servicio implementado
kubectl get deployment
# 我们只需要删除对应的deploy 即可
kubectl delete deployment nginx
Después de que la eliminación sea exitosa, no se puede encontrar ninguna sombra de nginx, complete
para resumir
En esta sección, usamos kubeadm
herramientas para construir rápidamente un clúster de Kubernetes, inicializar el sistema y recordar apagar los firewalls, particiones, etc.
Si te ayuda, se siente bien. Puedes recomendarlo a un amigo, dejar que lo despliegue con una nota, ¿cómo puedes conseguir una buena palabra? Vamos, apresúrate a correr a la cuenta
pública
: sitio web personal de Coder : https://blogs-payne.github.io/
bienvenido a pisar, sígueme. Pasemos de 0 a uno juntos