1. Crea un guión
Helm es una herramienta de administración de paquetes para Kubernetes que lo ayuda a simplificar y automatizar la implementación y administración de las aplicaciones de Kubernetes. Con Helm, puede crear y administrar paquetes de aplicaciones llamados Helm Charts, que contienen información de configuración y recursos de Kubernetes, y puede implementar y administrar aplicaciones en diferentes clústeres de Kubernetes.
En Helm, puede crear rápidamente un nuevo gráfico de Helm ejecutando el comando `helm create`. Este comando genera una estructura de directorio Helm Chart inicial e incluye algunos archivos de ejemplo para que pueda comenzar rápidamente a crear sus propias aplicaciones.
Los siguientes son los pasos para generar inicialmente un archivo Helm Chart usando el comando `helm create`:
1. Abra una terminal o una interfaz de línea de comandos.
2. Ingrese el directorio donde desea crear un Gráfico de Helm, por ejemplo: `cd /path/to/charts`
3. Ejecute el comando `helm create` y especifique el nombre del Gráfico, por ejemplo: helm create rabbitmq- gestión
Después de ejecutar el comando anterior, Helm creará un directorio Helm Chart llamado ` rainetmq-management` en el directorio actual y generará los siguientes archivos y directorios:
rabbitmq-management
├── Chart.yaml
├── charts
├── templates
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── service.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml
En los archivos generados, el directorio `templates` contiene algunos archivos de plantilla de muestra, y puede modificar o agregar más archivos de plantilla según sea necesario para definir los recursos de Kubernetes que se implementarán. El archivo `values.yaml` contiene algunos valores de configuración predeterminados, donde puede definir la configuración predeterminada de Chart y usar estas configuraciones en la plantilla.
Una vez que se haya generado el archivo Helm Chart inicial, puede editar y personalizar el gráfico según sea necesario, luego use el comando `helm install` para implementar la aplicación en el clúster de Kubernetes.
2. Prueba de gramática
pelusa del timón
helm lint ./rabbitmq-management
==> Linting ./rabbitmq-management
[INFO] Chart.yaml: icon is recommended
1 chart(s) linted, 0 chart(s) failed
Tercero, vea el contenido del script.
plantilla de timón
helm template rabbitmq-management ./rabbitmq-management
---
# Source: rabbitmq-management/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
name: rabbitmq-management
labels:
dce.daocloud.io/app: rabbitmq-management
helm.sh/chart: rabbitmq-management-0.1.0
app.kubernetes.io/name: rabbitmq-management
app.kubernetes.io/instance: rabbitmq-management
app.kubernetes.io/version: "1.16.0"
app.kubernetes.io/managed-by: Helm
spec:
type: NodePort
ports:
- port: 5672
targetPort: 5672
protocol: TCP
name: connection
- port: 15672
targetPort: 15672
protocol: TCP
name: management
selector:
app.kubernetes.io/name: rabbitmq-management
app.kubernetes.io/instance: rabbitmq-management
---
# Source: rabbitmq-management/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: rabbitmq-management
labels:
dce.daocloud.io/app: rabbitmq-management
dce.daocloud.io/component: rabbitmq-management
helm.sh/chart: rabbitmq-management-0.1.0
app.kubernetes.io/name: rabbitmq-management
app.kubernetes.io/instance: rabbitmq-management
app.kubernetes.io/version: "1.16.0"
app.kubernetes.io/managed-by: Helm
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: rabbitmq-management
app.kubernetes.io/instance: rabbitmq-management
template:
metadata:
labels:
dce.daocloud.io/app: rabbitmq-management
dce.daocloud.io/component: rabbitmq-management
app.kubernetes.io/name: rabbitmq-management
app.kubernetes.io/instance: rabbitmq-management
spec:
securityContext:
{}
containers:
- name: rabbitmq-management
securityContext:
{}
image: "10.32.224.129/rabbitmq/rabbitmq:3.6.2-management"
imagePullPolicy: IfNotPresent
ports:
- name: connection
containerPort: 5672
protocol: TCP
- name: management
containerPort: 15672
protocol: TCP
livenessProbe:
tcpSocket:
port: 5672
initialDelaySeconds: 45
timeoutSeconds: 1
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
readinessProbe:
tcpSocket:
port: 5672
initialDelaySeconds: 30
timeoutSeconds: 1
periodSeconds: 10
successThreshold: 1
failureThreshold: 9
resources:
limits:
cpu: 1
memory: 1Gi
requests:
cpu: 100m
memory: 1Gi
---
# Source: rabbitmq-management/templates/tests/test-connection.yaml
apiVersion: v1
kind: Pod
metadata:
name: "rabbitmq-management-test-connection"
labels:
helm.sh/chart: rabbitmq-management-0.1.0
app.kubernetes.io/name: rabbitmq-management
app.kubernetes.io/instance: rabbitmq-management
app.kubernetes.io/version: "1.16.0"
app.kubernetes.io/managed-by: Helm
annotations:
"helm.sh/hook": test
spec:
containers:
- name: wget
image: busybox
command: ['wget']
args: ['rabbitmq-management:5672']
restartPolicy: Never