LAN utilizando K8S instalación kubeadm

Lista de host:

ip nombre de host nodo UPC memoria
192.168.23.100 k8smaster Maestro 2 nuclear 2G
192.168.23.101 k8snode01 nodo 2 nuclear 2G
192.168.23.102 k8snode02 nodo 2 nuclear 2G

 

1, para configurar la fuente local yum
yum paquete fuente:
Enlace: https: //pan.baidu.com/s/1KAYWlw5Ky2ESUEZVsphQ0Q 

Yum configuración de fuente local, se copiará en el directorio yum.repo /etc/yum.repos.d/.
[Root @ k8smaster yum.repos.d] # Más yum.repo 
[Soft]
name = Base
baseurl = http: //192.168.23.100/yum
gpgcheck = 0

[root @ k8smaster yum.repos.d] # scp yum.repo 192.168.23.102:/etc/yum.repos.d/
[email protected]'s contraseña: 
yum.repo 100% 63 0.1KB / s 00:00    
[root @ k8smaster yum.repos.d] # scp yum.repo 192.168.23.101:/etc/yum.repos.d/
[email protected]'s contraseña: 
yum.repo   

2,修改/ etc / hosts
[root @ k8smaster yum.repos.d] # cat >> / etc / hosts << EOF
> 192.168.23.100 k8smaster
> 192.168.23.101 k8snode01
> 192.168.23.102 k8snode02
> EOF

[root @ k8smaster yum .repos.d] #

3,安装依赖
yum install -y conntrack ntpdate NTP ipvsadm ipset iptables rizo sysstat libseccomp wget vim de herramientas de red git iproute lrzsz bash-finalización árbol puente-utils descomprimir bind-utils gcc

4,关闭selinux
setenforce 0 && sed -i 's / ^ = SELINUX. * / SELINUX = desactivado /' / etc / selinux / config

5, desactive el firewall, la configuración del firewall para iptables y establecer la regla vacía
# estrecha firewalld y cancelados desde el inicio
de STOP systemctl firewalld && systemctl desactivar firewalld
# instalar iptables, arrancar iptables, ajustar el arranque de Kai, vacíos reglas de iptables, excepto las normas actuales a las reglas predeterminadas
yum -y install iptables-services && systemctl comenzar iptables service iptables && && systemctl permitir iptables iptables -F && ahorro
 

6, cerca del canje partición
# apagar partición de intercambio de memoria virtual [permanente] y desactivar la memoria virtual.

swapoff -a && sed -i '/ permuta / s / ^ \ (. * \) $ / # \ 1 / g' / etc / fstab

7, los parámetros de configuración del kernel, por K8S
CAT> kubernetes.conf el EOF <<
# modo de puente abierto Importante]
net.bridge.bridge-NF-call-iptables. 1 =
# modo de puente abierto Importante]
net.bridge.bridge = ip6tables-Call -. nf 1
. lleva el nombre net.ipv4.ip_forward y = 1
net.ipv4.tcp_tw_recycle = 0
# prohíben el uso de espacio de intercambio, sólo el sistema cuando se le permite utilizar sólo OOM 
vm.swappiness = 0
# no comprueba la adecuación de la memoria física
=. 1 vm.overcommit_memory
# abren la OOM 
vm.panic_on_oom = 0
fs.inotify.max_user_instances = 8192
fs.inotify.max_user_watches = 1048576
fs.file-max = 52706963
fs.nr_open = 52706963
# ipv6 [Cerrar] importante
net.ipv6.conf =. 1 .all.disable_ipv6
net.netfilter.nf_conntrack_max = 2310720
el EOF

# Se optimizarán los archivos del kernel se copian en la carpeta /etc/sysctl.d/, por lo que los archivos optimizados tiempo de arranque puede ser llamado
/etc/sysctl.d/kubernetes.conf cp kubernetes.conf 

# Actualización manual, por lo que el archivo optimizado con efecto inmediato
sysctl -p /etc/sysctl.d/kubernetes.conf

8, ajustar la zona horaria del sistema
# Establecer el área del sistema a China / Shanghai
timedatectl SET-Horario Asia / sobre el Shanghai
# La hora UTC actual en el reloj de hardware 
timedatectl el 0 SET-local-RTC
# reinicio depende de la hora del sistema del servicio de 
systemctl reinicio rsyslog
systemctl reinicio crond

9, el cierre sistema de servicios innecesarios
# cerrar y desmantelar el servicio de correo
parada systemctl postfix && systemctl desactivar postfix

10, guardar el registro proporcionado
después Centos7, porque el modo de arranque para el system.d, por lo que hay dos sistemas de registro, mientras que en el trabajo, el valor predeterminado es rsyslogd y journald systemd
uso systemd journald mejor, así que cambiamos el valor por defecto journald systemd, conservando única manera de guardar un registro.
1) Crear un directorio para guardar el registro
mkdir / var / log /. Tecnología de la información
2) Crear el directorio de almacenamiento de archivos de configuración
mkdir /etc/systemd/journald.conf.d
3) Crear el archivo de configuración
cat> /etc/systemd/journald.conf .d / 99-prophet.conf << EOF
[Diario]
# persistentemente guardado en el disco 
de almacenamiento persistente =
# de compresión registro de historial 
compresa = yes
SyncIntervalSec = 5m
RateLimitInterval = 30s
RateLimitBurst = 1000
# máximo espacio 10G 
SystemMaxUse = 10G
# solo registro el tamaño máximo de archivo 200M 
SystemMaxFileSize = 200M
# registro ahorrar tiempo dos semanas 
MaxRetentionSec = 2 semanas
# no se remitirán al registro de syslog 
= NO ForwardToSyslog
el EOF

. 4). Systemd journald configuración de reinicio de
systemctl reinicio systemd-journald

11, para ajustar el número de archivos abiertos
echo "* Soft nofile 65536" >> /etc/security/limits.conf
echo "* Duro nofile 65536" >> /etc/security/limits.conf

12,升级Linux内核为4,44版本
[root @ k8smaster yum.repos.d] # yum install kernel-lt.x86_64 -y (4.4.213-1.el7.elrepo)
[root @ k8smaster yum.repos.d] # awk -F \' '$ 1 == "menuentry" {print $ 2}' /etc/grub2.cfg 
CentOS Linux (4.4.213-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux, Linux 3.10.0 -123.el7.x86_64
CentOS Linux, Linux con 0-rescate-b7478dd50b1d41a5836a6a670b5cd8c1
[root @ k8smaster yum.repos.d] # grub2-set-default 'CentOS Linux (4.4.213-1.el7.elrepo.x86_64) 7 ( Core)'
[root @ k8snode01 ~] # uname -a
Linux k8snode01 4.4.213-1.el7.elrepo.x86_64 # 1 SMP Vie Dic 5 10:44:50 EST 2020 x86_64 x86_64 x86_64 GNU / Linux

12, la condición IPVS Kube-proxy previamente abiertas de
modprobe br_netfilter # netfilter módulo de carga
CAT> /etc/sysconfig/modules/ipvs.modules el EOF <<
# / bin / bash!
Modprobe - ip_vs
modprobe - ip_vs_rr
modprobe - ip_vs_wrr
modprobe - ip_vs_sh
modprobe - nf_conntrack
EOF

755 /etc/sysconfig/modules/ipvs.modules chmod
fiesta /etc/sysconfig/modules/ipvs.modules  
lsmod | grep -e -e nf_conntrack_ipv4 ip_vs
 # usando el comando lsmod para ver si estos archivos están dirigidos.

13, cargador de muelle de montaje
depende yum yum-utils el mapeador de dispositivos de datos LVM2 -Y-persistent- instalar
yum instalar el cargador de muelle -Y-CE  cargador de muelle de montaje #

Creación de directorio / etc / cargador de muelle
[! -D / etc / ventana acoplable] && mkdir / etc / cargador de muelle

配置demonio
gato> /etc/docker/daemon.json << EOF
{
 "exec-TPO": [ "native.cgroupdriver = systemd"],
 "log-conductor": "JSON-archivo",
 "log-TPO": {
  "tamaño máximo": "100"
 }
}

 

修改docker.service文件
/usr/lib/systemd/system/docker.service 
ExecStart = / usr / bin / dockerd -H fd: // --insecure-registro 0.0.0.0/0 -H UNIX: /// var / ejecutar / docker.sock -H tcp: //0.0.0.0: 2375 --containerd = / run / containerd / containerd.sock

#重启ventana acoplable服务
systemctl daemon-recarga && && systemctl reinicio ventana acoplable systemctl permitirá ventana acoplable

14, almacenamiento de imágenes e instalación de inicialización
de ejecución ventana acoplable -d -p 5000: 5000 --restart = siempre --name privada-ventana acoplable-registro --privileged = true -v / datos / registro: / var / lib / Registro 192.168.23.100 : 5000 / registro: v1

franela red réplica de paquetes
enlaces: https: //pan.baidu.com/s/1-DYxDoU2X85aobaGFclKfA 
código de extracción: nson

K8S base de la imagen de paquetes de
enlace: https: //pan.baidu.com/s/17uV90VPXqoaezwccpTj2GQ 
código de extracción: 13t3 

导入镜像
[root @ k8smaster k8s_image] # más load_image.sh 
# / bin / bash!
Ls / / zhaiky / k8s_image casa | grep -v carga> /tmp/image-list.txt
cd / home / zhaiky / k8s_image
for i in $ (/tmp/image-list.txt gato)
hacer
    carga ventana acoplable -I $ i
hecho
rm-rf /tmp/image-list.txt

上传镜像到私有仓库
cargador de muelle de empuje 192.168.23.100:5000/kube-apiserver:v1.15.1
cargador de muelle de empuje 192.168.23.100:5000/kube-proxy:v1.15.1
empuje ventana acoplable 192.168.23.100:5000/kube-controller-manager:v1 .15.1
cargador de muelle de empuje 192.168.23.100:5000/kube-scheduler:v1.15.1
cargador de muelle de empuje 192.168.23.100:5000/registry:v1
cargador de muelle de empuje 192.168.23.100:5000/coreos/flannel:v0.11.0-s390x
cargador de muelle de empuje 192.168.23.100 : 5000 / CoreOS / franela: v0.11.0-ppc64le
cargador de muelle de empuje 192.168.23.100:5000/coreos/flannel:v0.11.0-arm64
cargador de muelle de empuje 192.168.23.100:5000/coreos/flannel:v0.11.0-arm
cargador de muelle de empuje 192.168. 23.100: 5000 / CoreOS / franela: v0.11.0-amd64
cargador de muelle de empuje 192.168.23.100:5000/coredns:1.3.1
cargador de muelle de empuje 192.168.23.100:5000/etcd:3.3.10
cargador de muelle de empuje 192.168.23.100:5000/pause:3.1

15,安装kubeadm, tortillas, kubectl
yum -y install kubeadm-1.15.1-tortilla-kubectl 1.15.1 1.15.1
systemctl habilitación tortilla tortilla de empezar && systemctl

16, kubectl activar comandos de finalización automática
# -Realización de instalar y configurar la fiesta
ñam la instalación de la fiesta -Y-Finalización
de eco 'Fuente / usr / share / bash-Finalización / bash_completion' >> / etc / profile
Fuente / etc / Perfil
de eco "Fuente <(kubectl Finalización del golpe)" >> ~ / .bashrc
Fuente ~ / .bashrc

17, el Maestro de inicialización
configuración del paquete, y que comprende kubeadm-config.yaml Kube-flannel.yml están en el interior
enlace: https: //pan.baidu.com/s/1g0G7Ion0n6lERpluNjh_9A 
código extracción: 6pxt 

[root @ k8smaster ~] # cp /home/zhaiky/kubeadm-config.yaml.
kubeadm init = --config kubeadm-config.yaml --upload-certs | T-kubeadm init.log

Key Logging
Su Kubernetes plano de control se ha inicializado correctamente !

Para empezar a utilizar el clúster, debe ejecutar el siguiente como un usuario normal:

  mkdir -p $ HOME / .kube
  sudo cp -i /etc/kubernetes/admin.conf $ HOME / .kube / config
  sudo chown $ (-u id): $ (id -g) $ HOME / .kube / config

Ahora debería desplegar una red de vaina al clúster.
Ejecutar "kubectl aplicar -f [podnetwork] .yaml" con una de las opciones que figuran en:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

A continuación, puede unirse a cualquier número de nodos de trabajo mediante la ejecución del siguiente en cada como root:

kubeadm unen 192.168.23.100:6443 --token abcdef.0123456789abcdef \
    sha256 --discovery-token-ca-cert-hash: 78c3f1e110ed1f954665ba55a689397c2dc4d35243dc4516dd00b0bac97172f6 

18, conector macho de red de franela
[k8smaster la raíz @ ~] # CP /home/zhaiky/kube-flannel.yml.
[K8smaster la raíz @ ~] # kubectl Crear -f Kube-flannel.yml    

19,将K8S子节点加入到K8S主节点
kubeadm unirse a 192.168.23.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash SHA256: 78c3f1e110ed1f954665ba55a689397c2dc4d35243dc4516dd00b0bac97172f6 
[root @ k8smaster zhaiky] # kubectl get cs
ESTADO DE NOMBRE MENSAJE DE ERROR
planificador sana bien                  
controlador-manager sana bien                  
ETCD-0 saludable { "salud": "true"}
[root @ k8smaster ~] # kubectl Get nodo
FUNCIONES DE ESTADO NOMBRE EDAD VERSIÓN
k8smaster Listo maestros 4m58s v1.15.1
k8snode01 NotReady <ninguno> 21s v1.15.1
k8snode02 NotReady <ninguno> 16s v1.15.1
[Root @ k8smaster ~] #

20,操作简单
使用K8S运行一个nginx实例
[root @ k8smaster ~] # plazo kubectl nginx --image = 192.168.23.100: 5000 / nginx: v1 = 80 --port --replicas = 1
kubectl plazo --generator = despliegue /apps.v1 es obsoleto y se eliminará en una versión futura. Uso kubectl plazo --generator = run-pod / V1 o kubectl crear en su lugar.
deployment.apps / nginx creado
[root @ k8smaster ~] # 
[root @ k8smaster ~] # kubectl get vaina -o amplia
NOMBRE ESTADO LISTO REINICIO DE EDAD IP NODE GATES NOMINADO NODO DE PREPARACIÓN
Nginx-5bbb49fb76-xzj6x 1/1 Ejecución de 0 59s 10.244. 1.2 k8snode01 <ninguno> <ninguno>
[root @ k8smaster ~] # 

[root @ k8smaster ~] # kubectl get despliegue NOMBRE LISTO PARA ARRIBA AL DÍA disponibles Edad nginx 1/1 1 1 2m15s [root @ k8smaster ~] #  [root @ k8smaster ~] # rizo "http://10.244.1.2" <title> Bienvenido a nginx! </ title> [root @ k8smaster ~] # kubectl exponer el despliegue nginx --port = 80 = --type LoadBalancer servicio / nginx expuesta [root @ k8smaster ~] # kubectl get servicio TIPO NOMBRE CLUSTER- IP externa en IP PORT (S) EDAD Kubernetes ClusterIP 10.96.0.1 <ninguno> 443 / TCP 14h nginx LoadBalancer 10.99.225.215 <pendientes> 80: 13s 32461 / TCP [root @ k8smaster ~] # 












[root @ k8smaster ~] # rizo "http://192.168.23.101:32461"
<title> Bienvenido a nginx! </ title>
[root @ k8smaster ~] # rizo "http://10.99.225.215"
<title> Bienvenido a nginx! </ title>

Publicado 60 artículos originales · alabanza ganado 20 · vistas 4571

Supongo que te gusta

Origin blog.csdn.net/zhaikaiyun/article/details/104273974
Recomendado
Clasificación