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
2. Implementar un clúster K8S basado en kubeadm
(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.
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
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
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.
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