[Nativo de la nube] [k8s] Día 83 de aprendizaje de operaciones y mantenimiento desde principiante hasta gran maestro ------- Gestión de aplicaciones Kubernetes basadas en Helm

Etapa 4

Hora: 18 de agosto de 2023

Participantes: Todos los miembros de la clase.

Contenido:

Administre aplicaciones de Kubernetes basadas en Helm

Tabla de contenido

1. Método de implementación de Kubernetes

(1) minicubo

(2) paquete binario

(3) Kubeadm

2. Implementar un clúster K8S basado en kubeadm

(1) Preparación ambiental

(2) Implementar el clúster de Kubernetes

(3) Instalar la interfaz de usuario del panel

(4) Implementación del servicio del servidor de métricas

(5) Introducción al administrador de paquetes de aplicaciones Helm

(6) Implementación del administrador de paquetes de aplicaciones Helm


1. Método de implementación de Kubernetes

Proporciona oficialmente 3 formas de implementar Kubernetes

(1) minicubo

        Minikube es una herramienta que puede ejecutar rápidamente un único punto de Kubernetes localmente, para usuarios que prueban Kubernetes o el desarrollo diario. No apto para uso en entornos de producción.

Documentación oficial: Herramientas de instalación | Kubernetes

(2) paquete binario

        Descargue el paquete binario de distribución de la versión oficial e implemente manualmente cada componente para formar un clúster de Kubernetes. Actualmente, este método se utiliza principalmente en entornos de producción empresarial.

enlace de descarga:

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.11.md#v1113

(3) Kubeadm

        Kubeadm es una herramienta lanzada por Google específicamente para la implementación rápida de clústeres de Kubernetes. Durante el proceso de implementación del clúster, puede inicializar el nodo maestro mediante kubeadm init y luego usar kubeadm join para agregar otros nodos al clúster.

        1. Kubeadm puede ejecutar rápidamente un clúster mínimamente disponible mediante una configuración simple. Su diseño inicial se centró en instalar y ejecutar rápidamente el clúster, en lugar de en la preparación paso a paso de cada entorno de nodo. De manera similar, los diversos complementos utilizados en el clúster de Kubernetes no son el foco de kubeadm, como el panel WEB del clúster de Kubernetes, el negocio del clúster de monitoreo de Prometheus, etc. El propósito de la aplicación kubeadm es servir como base para todas las implementaciones y facilitar la implementación de clústeres de kubernetes a través de kubeadm.

2. La implementación simple y rápida de Kubeadm se puede aplicar a los tres aspectos siguientes:

·Los nuevos usuarios pueden crear y comprender Kubernete rápidamente a partir de kubeadm.

·Los usuarios familiarizados con Kubernetes pueden utilizar kubeadm para crear clústeres rápidamente y probar sus aplicaciones.

·Los proyectos a gran escala pueden utilizar kubeadm junto con otras herramientas de instalación para formar un sistema más complejo.

·Documentos oficiales:

Kubeadm | Kubernetes
Instalación de kubeadm | Kubernetes

2. Implementar un clúster K8S basado en kubeadm

(1) Preparación ambiental

dirección IP

nombre de la CPU

componentes

192.168.100.131

k8s-maestro

kubeadm, kubelet, kubectl, docker-ce

192.168.100.132

k8s-nodo01

kubeadm, kubelet, kubectl, docker-ce

192.168.100.133

k8s-nodo02

kubeadm, kubelet, kubectl, docker-ce

Nota: CPU recomendada para todas las configuraciones de host: 2C+ Memoria: 2G+

1. Configuración de inicialización del host

Deshabilite el firewall y selinux en todas las configuraciones de host

[root@localhost ~]# setenforce 0

[root@localhost ~]# iptables -F

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# systemctl disable firewalld

[root@localhost ~]# systemctl stop NetworkManager

[root@localhost ~]# systemctl disable NetworkManager

[root@localhost ~]# sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config

2. Configure el nombre del host y vincule los hosts. Los diferentes nombres de host son diferentes.

[root@localhost ~]# nombre de host k8s-master

[raíz@localhost ~]# bash

[root@k8s-master ~]# gato << EOF >> /etc/hosts

192.168.100.131 k8s-maestro

192.168.100.132 k8s-nodo01

192.168.100.133 k8s-nodo02

EOF

[root@localhost ~]# nombre de host k8s-node01

[root@k8s-node01 ~]# gato /etc/hosts

[root@localhost ~]# nombre de host k8s-node02

[root@k8s-node02 ~]#cat /etc/hosts

3. Inicialización de la configuración del host

[root@k8s-master ~]# yum -y instalar vim wget net-tools lrzsz

[root@k8s-master ~]# intercambio -a

[root@k8s-master ~]# sed -i '/swap/s/^/#/' /etc/fstab

[root@k8s-master ~]# gato << EOF >> /etc/sysctl.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

[root@k8s-master ~]# modprobe br_netfilter

[root@k8s-master ~]# sysctl -p

4. Implementar el entorno acoplable

1) Implementar entornos Docker en tres hosts respectivamente, porque la orquestación de contenedores por parte de Kubernetes requiere el soporte de Docker.

[root@k8s-master ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

[root@k8s-master ~]# yum install -y yum-utils dispositivo-mapper-persistent-data lvm2

2) Cuando utilice YUM para instalar Docker, se recomienda utilizar la fuente YUM de Alibaba.

[root@k8s-master ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3) Borrar caché

[root@k8s-master ~]# yum limpiar todo && yum makecache rápido

4) Iniciar la ventana acoplable

[root@k8s-master ~]# yum -y instalar docker-ce

[root@k8s-master ~]# systemctl iniciar ventana acoplable

[root@k8s-master ~]# systemctl habilitar ventana acoplable

5) Acelerador de imágenes (todas las configuraciones de host)

[root@k8s-master ~]# cat << FIN > /etc/docker/daemon.json

{ "espejos de registro":[ "https://nyakyfun.mirror.aliyuncs.com" ]

}

FIN

6) Reiniciar la ventana acoplable

[root@k8s-master ~]# systemctl daemon-reload

[root@k8s-master ~]# systemctl reiniciar la ventana acoplable

(2) Implementar el clúster de Kubernetes

1. Introducción de componentes

Los tres nodos necesitan instalar los siguientes tres componentes:

kubeadm: instale herramientas para que todos los componentes se ejecuten como contenedores

kubectl: herramienta API K8S de conexión de cliente

kubelet : una herramienta que se ejecuta en nodos y se utiliza para iniciar contenedores

2. Configurar la fuente yum de Alibaba Cloud

Al utilizar YUM para instalar Kubernetes, se recomienda utilizar la fuente YUM de Alibaba.

[root@k8s-master ~]# ls /etc/yum.repos.d/

[root@k8s-master ~]# gato > /etc/yum.repos.d/kubernetes.repo

3. Instale kubelet kubeadm kubectl

Todas las configuraciones de host

[root@k8s-master ~]# yum install -y kubelet-1.20.0 kubeadm-1.20.0 kubectl-1.20.0

[root@k8s-master ~]# systemctl habilitar kubelet

[root@k8s-master ~]# versión kubectl

        Una vez instalado kubelet, no se puede iniciar a través de systemctl start kubelet. Debe unirse al nodo o inicializarlo como maestro antes de que pueda iniciarse correctamente.

4. Configurar init-config.yaml

        Kubeadm proporciona muchos elementos de configuración. Las configuraciones de Kubeadm se almacenan en ConfigMap en los clústeres de Kubernetes. Estas configuraciones también se pueden escribir en archivos de configuración para facilitar la gestión de elementos de configuración complejos. El contenido de la configuración de Kubeadm se escribe en el archivo de configuración mediante el comando kubeadm config.

Instale en el nodo maestro. El maestro está configurado en 192.168.100.131. Cree el archivo init-config.yaml predeterminado mediante las siguientes instrucciones:

[root@k8s-master ~]# kubeadm config print init-defaults > init-config.yaml

configuración init-config.yaml

[root@k8s-master ~]# cat init-config.yaml

5. Instale el nodo maestro

1) Extraiga la imagen requerida

[root@k8s-master ~]# lista de imágenes de configuración de kubeadm --config init-config.yaml

[root@k8s-master ~]# imágenes de configuración de kubeadm extraen --config init-config.yaml

2) Instalar el nodo matser

[root@k8s-master ~]# kubeadm init --config=init-config.yaml //Inicializa la instalación de K8S

3) Sigue las indicaciones

De forma predeterminada, kubectl buscará el archivo de configuración en el directorio .kube en el directorio de inicio del usuario donde se ejecuta. Aquí hay una copia del admin.conf generado durante el paso [kubeconfig] durante la inicialización en .kube/config

[root@k8s-master ~]# mkdir -p $HOME/.kube

[root@k8s-master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

[root@k8s-master ~]# chown $(id -u):$(id -g) $HOME/.kube/config

        Kubeadm no incluye complementos de red durante la instalación inicial, lo que significa que no tiene funciones de red relacionadas después de la inicialización. Por ejemplo, la información del nodo vista en el nodo k8s-master está en el estado "No listo", y el Pod's CoreDNS no puede proporcionar servicios, etc.

6. Instalar el nodo del nodo

1) Según la información solicitada durante la instalación maestra

[root@k8s-node01 ~]# kubeadm join 192.168.100.131:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:78bdd0f01660f4e84355b70aa8807cf1d0d6325b0b28 502b29c241563e93b4ae

[root@k8s-master ~]# kubectl obtiene nodos

[root@k8s-node02 ~]# kubeadm unirse 192.168.100.131:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:78bdd0f01660f4e84355b70aa8807cf1d0d6325b0b28 502b29c241563e93b4ae

Operación maestra:

[root@k8s-master ~]# kubectl obtiene nodos

        Como se mencionó anteriormente, no hay ninguna configuración relacionada con la red al inicializar k8s-master, por lo que no puede comunicarse con el nodo, por lo que el estado es "No listo". Pero el nodo agregado mediante kubeadm join ya se puede ver en k8s-master.

7. Instalar franela

        La razón por la que el nodo maestro no está listo es porque no se utiliza ningún complemento de red y la conexión entre el nodo y el maestro no es normal en este momento. Actualmente, los complementos de red de Kubernetes más populares incluyen franela, calico, canal y tejido, aquí elegimos usar franela.

Todos los anfitriones:

El maestro carga kube-flannel.yml, todos los hosts cargan flannel_v0.12.0-amd64.tar, cni-plugins-linux-amd64-v0.8.6.tgz

[root@k8s-master ~]# carga de la ventana acoplable <flannel_v0.12.0-amd64.tar

Subir complemento:

[root@k8s-master ~]# tar xf cni-plugins-linux-amd64-v0.8.6.tgz

[root@k8s-master ~]# cp franela /opt/cni/bin/

Cargas maestras kube-flannel.yml

configuración del host maestro:

[root@k8s-master ~]# kubectl aplicar -f kube-flannel.yml

[root@k8s-master ~]# kubectl obtiene nodos

[root@k8s-master ~]# kubectl obtiene pods -n kube-system

Ya en estado listo

(3) Instalar la interfaz de usuario del panel

1. Implementar panel

Dirección del almacén de GitHub del panel: https://github.com/kubernetes/dashboard

En el almacén de códigos hay archivos de implementación relacionados que brindan ejemplos de instalación, podemos obtenerlos e implementarlos directamente.

[root@k8s-master ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml

        De forma predeterminada, en este archivo de implementación, se creará un espacio de nombres separado denominado kubernetes-dashboard y se implementará kubernetes-dashboard bajo este espacio de nombres. La imagen del panel proviene del Docker Hub oficial, por lo que no es necesario modificar la dirección de la imagen, solo consígala directamente de la oficial.

2. Abrir la configuración del puerto

        De forma predeterminada, el panel no abre puertos de acceso al mundo exterior. Para simplificar la operación aquí, use directamente nodePort para exponer sus puertos y modificar la definición de la parte de servicio:

Descargar imágenes para todos los hosts

[root@k8s-master ~]# docker pull kubernetesui/dashboard:v2.0.0

[root@k8s-master ~]# docker pull kubernetesui/metrics-scraper:v1.0.4

[root@k8s-master ~]# vim recomendado.yaml

3. Configuración de permisos

Configurar privilegios de superadministrador

[root@k8s-master ~]# vim recomendado.yaml

[root@k8s-master ~]# kubectl aplicar -f recomendado.yaml

[root@k8s-master ~]# kubectl obtiene pods -n  kubernetes-dashboard

[root@k8s-master ~]# kubectl obtiene pods -A -o ancho

4. Configuración del token de acceso

Utilice Google Chrome para probar el acceso https://192.168.100.131:32443

        Puede ver que aparece la pantalla que se muestra arriba y debemos ingresar un archivo kubeconfig o un token. De hecho, al instalar el panel, se creó una cuenta de servicio para nosotros de forma predeterminada y se generó un token para Kubernetes-dashboard.

Podemos obtener el token sa mediante el siguiente comando:

[root@k8s-master ~]# kubectl describe secreto -n kubernetes-dashboard $(kubectl get secret -n kubernetes-dashboard |grep kubernetes-dashboard-token | awk '{print $1}') |grep token | awk '{imprimir $2}'

Ingrese el token obtenido

Vea la descripción general del clúster:

Ver roles de clúster:

Ver espacios de nombres del clúster:

Ver nodos del clúster:

Ver grupos de clústeres:

(4) Implementación del servicio de servidor de métricas

1. Descargue la imagen en el nodo Nodo.

heapster ha sido reemplazado por metrics-server, que es una herramienta de adquisición de indicadores de recursos en K8S

En todos los nodos del nodo

[root@k8s-node01 ~]# docker pull bluersw/metrics-server-amd64:v0.3.6

[root@k8s-node01 ~]# etiqueta acoplable bluersw/metrics-server-amd64:v0.3.6 k8s.gcr.io/metrics-server-amd64:v0.3.6

2. Modificar los parámetros de inicio del servidor Kubernetes

Agregue las siguientes opciones de configuración al elemento kube-apiserver. Después de la modificación, apiserver se reiniciará automáticamente.

[root@k8s-master ~]# vim /etc/kubernetes/manifests/kube-apiserver.yaml

3. Implementar en Master

[root@k8s-master ~]# wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml

Modifique el script de instalación:

[root@k8s-master ~]# vim componentes.yaml

[root@k8s-master ~]# kubectl crear -f componentes.yaml

Espere 1-2 minutos para ver los resultados.

[root@k8s-master ~]# nodos superiores de kubectl

Regrese a la interfaz del tablero y podrá ver el uso de CPU y memoria.

(5) Introducción al administrador de paquetes de aplicaciones Helm

1. ¿Por qué necesitas Helm?

        Los servicios de aplicaciones implementados en Kubernetes se componen de descripciones de recursos específicos, incluida la implementación, el servicio, etc. Cada objeto de recurso se guarda en su propio archivo o se escribe colectivamente en un archivo de configuración. Luego impleméntelo a través del comando kubectl apply –f demo.yaml.

        Si el sistema empresarial sólo consta de uno o varios de estos servicios, entonces el método de gestión de implementación anterior es suficiente.

        Para un sistema empresarial complejo, habrá muchos archivos de descripción de recursos similares a los anteriores. Por ejemplo, una aplicación de arquitectura de microservicio puede tener hasta diez o docenas de servicios que componen la aplicación. Si es necesario actualizar o revertir una aplicación, puede ser necesario modificar y mantener una gran cantidad de archivos de objetos de recursos involucrados, y esta forma de organizar y administrar aplicaciones se vuelve insuficiente.

        Además, debido a la falta de gestión y control de las versiones de las aplicaciones publicadas, el mantenimiento y las actualizaciones de las aplicaciones en Kubernetes enfrentan muchos desafíos, principalmente los siguientes problemas:

Cómo gestionar estos servicios en su conjunto

Cómo reutilizar estos archivos de recursos de manera eficiente

No se admite la gestión de versiones a nivel de aplicación

2. Introducción a Helm

        Helm es una herramienta de administración de paquetes de Kubernetes. Al igual que los administradores de paquetes en Linux, como yum/apt-get, etc., Helm puede implementar fácilmente archivos yaml previamente empaquetados en Kubernetes.

Helm tiene 3 conceptos importantes:

helm: una herramienta cliente de línea de comandos que se utiliza principalmente para la creación, empaquetado, publicación y gestión de gráficos de aplicaciones de Kubernetes.

Gráfico: Directorio o paquete comprimido, utilizado para la descripción de la aplicación, que consta de una serie de archivos utilizados para describir los objetos de recursos de k8s.

Versión: entidad de implementación basada en gráficos. Después de que Helm ejecute un gráfico, se generará la versión correspondiente; se creará un objeto de recurso en ejecución real en k8s.

Características del timón

        Un administrador de paquetes desarrollado para Kubernetes. Cada paquete se llama Gráfico y un Gráfico es un directorio (generalmente, el directorio se empaquetará y comprimirá para formar un solo archivo en el formato nombre-versión.tar.gz para facilitar la transmisión). almacenamiento)

        Para los editores de aplicaciones, Helm se puede utilizar para empaquetar aplicaciones, administrar dependencias de aplicaciones, administrar versiones de aplicaciones y publicar aplicaciones en almacenes de software.

        Los usuarios, después de usar Helm, ya no necesitan comprender la sintaxis Yaml de Kubernetes y escribir archivos de implementación de aplicaciones, sino que pueden descargar e instalar las aplicaciones requeridas en Kubernetes a través de Helm.

        Helm proporciona potentes funciones para la implementación, eliminación, actualización y reversión de aplicaciones en Kubernetes.

3. Cambios en el timón V3

El 13 de noviembre de 2019, el equipo de Helm lanzó la primera versión estable de Helm v3. Los principales cambios en esta versión son los siguientes:

1) Cambios de arquitectura

El cambio más obvio es la eliminación de Tiller.

2) Los nombres de las versiones se pueden reutilizar en diferentes espacios de nombres

3) Soporte para enviar Chart al puerto del almacén espejo de Docker

4) Utilice JSONSchema para verificar los valores del gráfico

5) Otros

Cambios de nombre individuales de Helm CLI para coordinar mejor la redacción con otros administradores de paquetes

helm eliminar` pasó a llamarse `helm uninstall

helm inspect` pasó a llamarse `helm show

helm fetch` pasó a llamarse helm pull

Sin embargo, los antiguos comandos anteriores todavía se pueden utilizar.

Se eliminó el comando helm server utilizado para crear temporalmente el repositorio de gráficos localmente.

Crear espacios de nombres automáticamente

        Helm 2 creó el espacio de nombres al crear una distribución en un espacio de nombres que no existía. Helm 3 sigue el comportamiento de otros objetos de Kubernetes y devuelve un error si el espacio de nombres no existe.

require.yaml ya no es necesario, las dependencias se definen directamente en chart.yaml.

(6) Implementación del administrador de paquetes de aplicaciones Helm

1. Implementar la herramienta cliente Helm

Dirección de descarga del cliente Helm: Lanzamientos · helm/helm · GitHub

Descomprima el paquete del código fuente y muévalo al directorio /usr/bin/.

[root@k8s-master ~]# wget https://get.helm.sh/helm-v3.5.2-linux-amd64.tar.gz

[root@k8s-master ~]# tar xf helm-v3.5.2-linux-amd64.tar.gz

[root@k8s-master ~]# cd linux-amd64/

[root@k8s-master linux-amd64]#ls

[root@k8s-master linux-amd64]# mv helm /usr/bin/

[root@k8s-master ~]# helm #Verifique si el comando helm está disponible

2. Control de comandos de uso común

Orden

describir

crear

Crear un gráfico y especificar un nombre

dependencia

Administrar dependencias de gráficos

conseguir

Descargar una versión. Subcomandos disponibles: todos, ganchos, manifiesto, notas, valores

historia

Obtener historial de lanzamientos

instalar

Instalar un gráfico

lista

Lista de lanzamientos

paquete

Empaquetar el directorio de gráficos en un archivo de almacenamiento de gráficos

jalar

Descargue el gráfico del repositorio remoto y extráigalo localmente# helm pull stable/mysql --untar

repositorio

Agregue, enumere, elimine, actualice e indexe repositorios de gráficos. Subcomandos disponibles: agregar, indexar, enumerar, eliminar, actualizar

Retroceder

Retroceder desde la versión anterior

buscar

Buscar gráficos basados ​​en palabras clave. Subcomandos disponibles: hub, repo

espectáculo

Ver detalles del gráfico. Subcomandos disponibles: todos, gráfico, Léame, valores

estado

Mostrar el estado de una versión con nombre

plantilla

Plantilla de renderizado local

desinstalar

Desinstalar una versión

mejora

Actualizar una versión

versión

Verifique la versión del cliente de helm

3. Configurar el almacén de gráficos nacional

Se recomienda encarecidamente el almacén de Microsoft ( Índice de /kubernetes/charts/ ). Básicamente, todos los gráficos del sitio web oficial están disponibles aquí.

Almacén en la nube de Alibaba ( https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts )

Almacén oficial ( Kubeapps | Inicio ) El almacén oficial de gráficos es un poco difícil de usar en China.

Agregar repositorio de gráficos

[root@k8s-master ~]# repositorio de helm agregar estable http://mirror.azure.cn/kubernetes/charts

[root@k8s-master ~]# repositorio de helm agrega aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

[root@k8s-master ~]# actualización del repositorio de helm

Ver el repositorio de gráficos configurado

[root@k8s-master ~]# lista de repositorios de helm

Eliminar el repositorio:

[root@k8s-master ~]# helm repo eliminar aliyun

[root@k8s-master ~]# lista de repositorios de helm

4. Utilice el gráfico para implementar una aplicación Nginx

1) Crear gráfico

[root@k8s-master ~]# helm crear nginx

[root@k8s-master ~]# árbol nginx/

Explicación detallada:

nginx/

├── gráficos #dependen de archivos de gráficos de otros paquetes

├── Chart.yaml # El archivo de descripción del gráfico, incluida la dirección IP, información de versión, etc.

├── plantillas # Directorio para almacenar archivos de plantillas k8s

│ ├── implementación.yaml #Crear una plantilla yaml para los recursos de implementación de k8s

│ ├── _helpers.tpl # Otras plantillas pueden hacer referencia a los archivos que comienzan con un guión bajo

│ ├── hpa.yaml #Configurar recursos de servicio memoria CPU

│ ├── ingress.yaml # Configuración de ingreso para acceder al nombre de dominio del servicio

│ ├── NOTAS.txt # Archivo de descripción, el contenido que se muestra al usuario después de la instalación de helm

│ ├── cuentaservicio.yaml

│ ├── service.yaml #kubernetes Plantilla de servicio yaml

│ └── pruebas

│ └── prueba-conexión.yaml

└── valores.yaml #Variables utilizadas para archivos de plantilla

2) Modifique el tipo de servicio en valores.yaml a NodePort

[root@k8s-master ~]# cd nginx/

[root@k8s-master nginx]# valores vim.yaml

3) Instale la tarea del gráfico (tenga en cuenta el último punto en el comando)

[root@k8s-master nginx]# helm install -f valores.yaml

4) Ver lanzamiento

[root@k8s-master nginx]# helm ls #o lista de helm

5) Eliminar versión

[root@k8s-master nginx]# helm eliminar nginx

6) Verificar el estado del módulo

[root@k8s-master nginx]# kubectl obtener pod

[root@k8s-master nginx]# kubectl obtiene pod -o ancho

7) Verificar el estado del servicio

[root@k8s-master nginx]# kubectl obtiene svc

Visita 192.168.100.132:30281

5. Utilice el gráfico para implementar una aplicación Tomcat

[root@k8s-master ~]# helm crear tomcat

Creando gato

[root@k8s-master ~]# cd tomcat/

Modificar los archivos despliegue.yaml y service.yaml

[root@k8s-master tomcat]# plantillas vim/deployment.yaml

[root@k8s-master tomcat]# plantillas vim/servicio.yaml

Crear lanzamiento

[root@k8s-master tomcat]# helm instalar tomcat.

Ver lanzamiento

[root@k8s-master tomcat]# helm ls

Ver pods y servicio

[root@k8s-master tomcat]# kubectl obtener pod

[root@k8s-master tomcat]# kubectl get pod -o ancho

[root@k8s-master tomcat]# kubectl obtiene svc

Preparar página de prueba

[root@k8s-master tomcat]# kubectl exec -it tomcat-67df6cd4d6-s7qxl /bin/bash

root@tomcat-67df6cd4d6-s7qxl:/usr/local/tomcat# mkdir webapps/ROOT

root@tomcat-67df6cd4d6-s7qxl:/usr/local/tomcat# echo "helm test1" > webapps/ROOT/index.jsp

[root@k8s-master tomcat]# kubectl exec -it tomcat-67df6cd4d6-tkp95 /bin/bash

root@tomcat-67df6cd4d6-tkp95:/usr/local/tomcat# mkdir webapps/ROOT

root@tomcat-67df6cd4d6-tkp95:/usr/local/tomcat# echo "helm test2" > webapps/ROOT/index.jsp

Prueba de acceso:

Visita 192.168.100.132:32092

Visita 192.168.100.133:32092

borrar

[root@k8s-master tomcat]# helm eliminar tomcat

[root@k8s-master tomcat]# helm ls

Actualizar (volver a aplicar después de cambiar el archivo yaml)

[root@k8s-master tomcat]# helm instalar tomcat.

[root@k8s-master tomcat]# helm ls

[root@k8s-master tomcat]# kubectl obtener pod

[root@k8s-master tomcat]# plantillas vim/deployment.yaml

[root@k8s-master tomcat]# actualización de timón tomcat.

[root@k8s-master tomcat]# kubectl obtener pod

[root@k8s-master tomcat]# helm ls

Retroceder

[root@k8s-master tomcat]# helm rollback tomcat 1

[root@k8s-master tomcat]# helm ls

[root@k8s-master tomcat]# kubectl obtener pod

6. Renderizar plantillas con variables

Pruebe si la plantilla es normal.

[root@k8s-master tomcat]# helm install --dry-run tomcat.

Definir variables en el archivo value.yaml

[root@k8s-master tomcat]# valores de gato.yaml

[root@k8s-master tomcat]# plantillas cat/deployment.yaml

[root@k8s-master tomcat]# plantillas cat/service.yaml

        Las variables en los archivos implementación.yaml y service.yaml son valores predefinidos y referenciados en value.yaml.

Release.Name representa el nombre después de la instalación de helm

[root@k8s-master tomcat]# helm eliminar tomcat

Elimine todos los archivos redundantes en el directorio de plantillas, dejando solo dos archivos de prueba.

[root@k8s-master tomcat]# ls plantillas/

[root@k8s-master tomcat]# helm install -f valores.yaml

[root@k8s-master tomcat]# helm ls

 

Ver estado de publicación

[root@k8s-master tomcat]# estado del timón tomcat

[root@k8s-master tomcat]# kubectl obtener pod

Ver detalles del módulo

[root@k8s-master tomcat]# kubectl describe pod tomcat-dp-67df6cd4d6-78pxc

Supongo que te gusta

Origin blog.csdn.net/2302_77582029/article/details/132348710
Recomendado
Clasificación