Crear una secuencia de comandos de Helm

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

 

Supongo que te gusta

Origin blog.csdn.net/summer_fish/article/details/132088463
Recomendado
Clasificación