Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Cloud Container Engine/ Guía del usuario/ Gráfico de Helm/ Despliegue de una aplicación a través del cliente de Helm v2
Actualización más reciente 2024-09-10 GMT+08:00

Despliegue de una aplicación a través del cliente de Helm v2

CCE ha cambiado gradualmente a Helm v3 desde septiembre de 2022. Los gráficos de Helm v2 ya no son compatibles con la consola. Si no puede cambiar a Helm v3 por ahora, puede usar el cliente de Helm v2 para gestionar los gráficos de Helm v2 en segundo plano.

Requisitos previos

El clúster de Kubernetes creado en CCE se ha conectado a kubectl. Para obtener más información, véase Uso de kubectl.

Precauciones

CCE intentará convertir las versiones v2 a v3. Si elimina una versión de Helm v2 en segundo plano, la información de la versión todavía se muestra en la página de gráficos de la consola de CCE. En este caso, elimínelo.

Instalación de Helm v2

Esta sección utiliza Helm v2.17.0 como ejemplo.

Para otras versiones, visite https://github.com/helm/helm/releases.

  1. Descargue el cliente Helm desde la máquina virtual conectada al clúster.

    wget https://get.helm.sh/helm-v2.17.0-linux-amd64.tar.gz

  2. Descomprima el paquete Helm.

    tar -xzvf helm-v2.17.0-linux-amd64.tar.gz

  3. Copie Helm en la ruta del sistema, por ejemplo, /usr/local/bin/helm.

    mv linux-amd64/helm /usr/local/bin/helm

  4. RBAC está habilitado en el servidor de API de Kubernetes. Por lo tanto, debe crear el nombre de cuenta de servicio tiller para el timón y asignar cluster-admin, un ClusterRole de sistema, al timón. Cree una cuenta de recursos de timón de la siguiente manera:

    vim tiller-rbac.yaml
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: tiller
      namespace: kube-system
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: tiller
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
      - kind: ServiceAccount
        name: tiller
        namespace: kube-system

  5. Despliegue la cuenta de recursos de timón.

    kubectl apply -f tiller-rbac.yaml

  6. Inicialice el Helm y despliegue el pod del timón.

    helm init --service-account tiller --skip-refresh

  7. Consulte el estado.

    kubectl get pod -n kube-system -l app=helm

    Salida del comando:

    NAME                             READY   STATUS    RESTARTS   AGE
    tiller-deploy-7b56c8dfb7-fxk5g   1/1     Running   1          23h

  8. Consulte la versión Helm.

    # helm version
    Client: &version.Version{SemVer:"v2.17.0", GitCommit:"a690bad98af45b015bd3da1a41f6218b1a451dbe", GitTreeState:"clean"}
    Server: &version.Version{SemVer:"v2.17.0", GitCommit:"a690bad98af45b015bd3da1a41f6218b1a451dbe", GitTreeState:"clean"}

Instalación del gráfico Helm

Si los gráficos proporcionados por CCE no cumplen con los requisitos, descargue un gráfico e instálelo.

Puede obtener el gráfico requerido en el directorio stable de este sitio web de https://github.com/helm/charts y descargarlo y subirlo al nodo.
  1. Descargue y descomprima el gráfico obtenido. Generalmente, el gráfico está en formato ZIP.
    unzip chart.zip
  2. Instale el gráfico de Helm.
    helm install aerospike/
  3. Una vez completada la instalación, ejecute el comando helm list para comprobar el estado de las versiones de gráficos.

Problemas comunes

  • Aparece el siguiente mensaje de error después de ejecutar el comando helm version:
    Client:
    &version.Version{SemVer:"v2.17.0",
    GitCommit:"a690bad98af45b015bd3da1a41f6218b1a451dbe", GitTreeState:"clean"}
    E0718 11:46:10.132102    7023 portforward.go:332] an error occurred
    forwarding 41458 -> 44134: error forwarding port 44134 to pod
    d566b78f997eea6c4b1c0322b34ce8052c6c2001e8edff243647748464cd7919, uid : unable
    to do port forwarding: socat not found.
    Error: cannot connect to Tiller

    La información anterior se muestra porque el socat no está instalado. Ejecute el siguiente comando para instalar el socat:

    yum install socat -y
  • Cuando ejecuta el comando yum install socat –y en un nodo que ejecuta EulerOS 2.9 y se muestra el siguiente mensaje de error:

    No hay coincidencia para el argumento: socat

    Error: no se puede encontrar una coincidencia: socat

    Esto indica que la imagen de socat no está contenida. Descargue el paquete RPM de https://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS-SP3/everything/x86_64/Packages/socat-1.7.3.2-8.oe1.x86_64.rpm y ejecute el siguiente comando para instalar socat:

    rpm -i socat-1.7.3.2-8.oe1.x86_64.rpm

  • Cuando se ha instalado el socat y se muestra el siguiente mensaje de error después de ejecutar el comando helm version:
    test@local:~/k8s/helm/test$ helm version
    Client: &version.Version{SemVer:"v3.3.0", GitCommit:"021cb0ac1a1b2f888144ef5a67b8dab6c2d45be6", GitTreeState:"clean"}
    Error: cannot connect to Tiller

    El gráfico Helm lee el certificado de configuración del archivo .Kube/config para comunicarse con Kubernetes. El error anterior indica que la configuración de kubectl es incorrecta. En este caso, vuelva a conectar el clúster a kubectl. Para obtener más información, véase Uso de kubectl.

  • El almacenamiento no se crea después de que se haya conectado a los servicios de almacenamiento en la nube.

    Este problema puede ser causado por el campo annotation en el PVC creado. Cambie el nombre del gráfico e instale el gráfico de nuevo.

  • Si kubectl no está configurado correctamente, se muestra el siguiente mensaje de error después de ejecutar el comando helm install:
    [root@prometheus-57046 ~]# helm install prometheus/ --generate-name
    WARNING: This chart is deprecated
    Error: Kubernetes cluster unreachable: Get "http://localhost:8080/version?timeout=32s": dial tcp [::1]:8080: connect: connection refused

    Solución: Configurar kubeconfig para el nodo. Para obtener más información, véase Uso de kubectl.