zoukankan      html  css  js  c++  java
  • Microk8s 安装helm3

    Microk8s 安装helm3

    原本使用官方的命令时这样的。但是使用的是官方的源,网络极不稳定。就出现了下面的状况。解决方法是更改为国内的源。

    microk8s enable helm3

    curl: (56) GnuTLS recv error (-54): Error in the pull function.

    通过ps命令查看该进程的工作

    可以看到使用microk8s enable helm3的时候,执行的命令和工作的目录。用此来确定工作的数据目录。

    进入action目录查看的时候看到了enable.helm3.sh的脚本。

    root@local:/snap/microk8s/2035/actions# ls
    common                  disable.knative.sh         enable.gpu.sh             enable.rbac.sh
    coredns.yaml            disable.kubeflow.sh        enable.ha-cluster.sh      enable.registry.sh
    dashboard.yaml          disable.linkerd.sh         enable.helm.sh            enable.storage.sh
    disable.ambassador.sh   disable.metallb.sh         enable.helm3.sh           enable.traefik.sh
    disable.cilium.sh       disable.metrics-server.sh  enable.host-access.sh     fluentd
    disable.dashboard.sh    disable.multus.sh          enable.ingress.sh         gpu.yaml
    disable.dns.sh          disable.portainer.sh       enable.istio.sh           ingress.yaml
    disable.fluentd.sh      disable.prometheus.sh      enable.jaeger.sh          jaeger
    disable.gpu.sh          disable.rbac.sh            enable.juju.sh            knative
    disable.ha-cluster.sh   disable.registry.sh        enable.keda.sh            metallb.yaml
    disable.helm.sh         disable.storage.sh         enable.knative.sh         metrics-server.yaml
    disable.helm3.sh        disable.traefik.sh         enable.kubeflow.sh        multus.yaml
    disable.host-access.sh  dns.yaml                   enable.linkerd.sh         prometheus
    disable.ingress.sh      enable.ambassador.sh       enable.metallb.sh         registry-help.yaml
    disable.istio.sh        enable.cilium.sh           enable.metrics-server.sh  registry.yaml
    disable.jaeger.sh       enable.dashboard.sh        enable.multus.sh          storage.yaml
    disable.juju.sh         enable.dns.sh              enable.portainer.sh       traefik.yaml
    disable.keda.sh         enable.fluentd.sh          enable.prometheus.sh
    
    

    查看该脚本

    root@local:/snap/microk8s/2035/actions# cat enable.helm3.sh 
    #!/usr/bin/env bash
    
    set -e
    
    source $SNAP/actions/common/utils.sh
    CA_CERT=/snap/core/current/etc/ssl/certs/ca-certificates.crt
    
    echo "Enabling Helm 3"
    
    if [ ! -f "${SNAP_DATA}/bin/helm3" ]
    then
      # 这里就是官方的源地址了,就是因为它导致下载的超时。
      SOURCE_URI="https://get.helm.sh"
      HELM_VERSION="v3.0.2"
    
      echo "Fetching helm version $HELM_VERSION."
      run_with_sudo mkdir -p "${SNAP_DATA}/tmp/helm"
      (cd "${SNAP_DATA}/tmp/helm"
      run_with_sudo "${SNAP}/usr/bin/curl" --cacert $CA_CERT -L $SOURCE_URI/helm-$HELM_VERSION-linux-$(arch).tar.gz -o "$SNAP_DATA/tmp/helm/helm.tar.gz"
      run_with_sudo gzip -f -d "$SNAP_DATA/tmp/helm/helm.tar.gz"
      run_with_sudo tar -xf "$SNAP_DATA/tmp/helm/helm.tar")
    
      run_with_sudo mkdir -p "$SNAP_DATA/bin/"
      run_with_sudo mv "$SNAP_DATA/tmp/helm/linux-$(arch)/helm" "$SNAP_DATA/bin/helm3"
      run_with_sudo chmod +x "$SNAP_DATA/bin/"
      run_with_sudo chmod +x "$SNAP_DATA/bin/helm3"
    
      run_with_sudo rm -rf "$SNAP_DATA/tmp/helm"
    fi
    
    echo "Helm 3 is enabled"
    root@local:/snap/microk8s/2035/actions#
    

    在直接更改了它保存退出,报错。

    文件系统只读,那是因为这是安装程序在本地挂载的回环地址是只读的形式挂载的,尝试以可读写的方式挂载失败了。

    然后把脚本复制出来,更改单独执行。

    root@local:~# cat /tmp/enable.helm3.sh 
    #!/usr/bin/env bash
    
    set -e
    
    # 手动添加的目录变量
    SNAP=/snap/microk8s/2035
    SNAP_DATA=/var/snap/microk8s/2035
    
    source $SNAP/actions/common/utils.sh
    CA_CERT=/snap/core/current/etc/ssl/certs/ca-certificates.crt
    
    echo "Enabling Helm 3"
    
    if [ ! -f "${SNAP_DATA}/bin/helm3" ]
    then
      # 更改为华为的源
      SOURCE_URI="https://mirrors.huaweicloud.com/helm/v3.0.2/"
      HELM_VERSION="v3.0.2"
    
      echo "Fetching helm version $HELM_VERSION."
      run_with_sudo mkdir -p "${SNAP_DATA}/tmp/helm"
      (cd "${SNAP_DATA}/tmp/helm"
      # $(arch)改成了amd64
      run_with_sudo "${SNAP}/usr/bin/curl" --cacert $CA_CERT -L $SOURCE_URI/helm-$HELM_VERSION-linux-amd64.tar.gz -o "$SNAP_DATA/tmp/helm/helm.tar.gz"
      run_with_sudo gzip -f -d "$SNAP_DATA/tmp/helm/helm.tar.gz"
      run_with_sudo tar -xf "$SNAP_DATA/tmp/helm/helm.tar")
    
      run_with_sudo mkdir -p "$SNAP_DATA/bin/"
      run_with_sudo mv "$SNAP_DATA/tmp/helm/linux-amd64/helm" "$SNAP_DATA/bin/helm3"
      run_with_sudo chmod +x "$SNAP_DATA/bin/"
      run_with_sudo chmod +x "$SNAP_DATA/bin/helm3"
    
      run_with_sudo rm -rf "$SNAP_DATA/tmp/helm"
    fi
    
    echo "Helm 3 is enabled"
    
    # 执行
    root@local:/tmp# ./enable.helm
    

    查看结果

  • 相关阅读:
    局部类
    内部类
    程序的异常
    四种修饰符
    接口之间的多继承
    多态
    继承父类并实现多个接口
    接口内容小结
    接口的静态方法和私有方法
    顺序栈与链式栈
  • 原文地址:https://www.cnblogs.com/gshelldon/p/14485388.html
Copyright © 2011-2022 走看看