0

我正在尝试使用 ADO 管道环境功能设置多级 ADO 管道。

第 1 阶段:使用 Maven 构建基于 Spring-boot 的 Java 微服务。

第 2 阶段:使用 Helm 3 部署上述内容。HelmDeploy@0 任务使用 Environment,它有一个名为 tools-dev(一个 kubernetes 命名空间)的资源,我希望在其中使用 Helm chart 部署此服务。

它在最后一步失败并出现此错误:

/usr/local/bin/helm upgrade --install --values /azp/agent/_work/14/a/values.yaml --wait --set ENV=dev --set-file appProperties=/azp/agent/_work/14/a/properties.yaml --history-max 2 --stderrthreshold 3 java-rest-template k8s-common-helm/rest-template-helm-demo

Error: Kubernetes cluster unreachable: Get "https://rancher.msvcprd.windstream.com/k8s/clusters/c-gkffz/version?timeout=32s": x509: certificate signed by unknown authority
##[error]Error: Kubernetes cluster unreachable: Get "https://rancher.msvcprd.windstream.com/k8s/clusters/c-gkffz/version?timeout=32s": x509: certificate signed by unknown authority**

完成:Helm Deploy

我使用设置部分中指定的 kubectl 命令在 Environment 中创建了 Kubernetes 资源。

部署阶段管道摘录:

- stage: Deploy
  displayName: kubernetes deployment
  dependsOn: Build
  condition: succeeded('Build')
  jobs:
  - deployment: deploy
    pool: $(POOL_NAME)
    displayName: Deploy
    environment: dev-az-s-central-k8s2.tools-dev
    strategy:
      runOnce:
        deploy: 
          steps:
          - bash: |
              helm repo add \
                k8s-common-helm \
                http://nexus.windstream.com/repository/k8s-helm/
              helm repo update
            displayName: 'Add and Update Helm repo'
            failOnStderr: false
          - task: HelmDeploy@0
            inputs:
              command: 'upgrade'
              releaseName: '$(RELEASE_NAME)'
              chartName: '$(HELM_CHART_NAME)'
              valueFile: '$(Build.ArtifactStagingDirectory)/values.yaml'
              arguments: '--set ENV=$(ENV) --set-file appProperties=$(Build.ArtifactStagingDirectory)/properties.yaml  --history-max 2 --stderrthreshold 3'
            displayName: 'Helm Deploy'

环境设置:名称:dev-az-s-central-k8s2 资源:tools-dev(注意:这是我尝试连接的本地 k8s 集群)。

您能否让我知道解决此 x509 证书问题需要哪些额外配置?

4

1 回答 1

1

检查文档:

问题是您的本地 Kubernetes 配置文件必须具有正确的凭据。

当您在 GKE 上创建集群时,它会为您提供凭证,包括 SSL 证书和证书颁发机构。这些需要存储在 Kubernetes 配置文件中(默认值:),~/.kube/config以便可以访问它们。kubectlhelm

此外,请检查答案以防Helm 3: x509 error when connected to local Kubernetes

Helm 在此路径 $HOME/.kube/config 中查找 kubeconfig。

请运行此命令

microk8s.kubectl config view --raw > $HOME/.kube/config

这会将配置保存在您目录中所需路径的位置,并且可以正常工作

于 2021-02-16T08:54:52.743 回答