【问题标题】:ADO Pipeline Environment Kubernetes On-Prem Resource Connection failing with x509: certificate signed by unknown authorityADO Pipeline Environment Kubernetes On-Prem Resource Connection failed with x509: certificate signed by unknown authority
【发布时间】:2021-02-16 16:54:52
【问题描述】:

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

第一阶段:使用 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 部署

我使用设置部分中指定的 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 证书问题需要哪些额外配置?

【问题讨论】:

    标签: kubernetes azure-devops kubernetes-helm x509certificate azure-devops-pipelines


    【解决方案1】:

    查看this 文档:

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

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

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

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

    请运行此命令

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

    这会将配置保存在您目录中所需的路径中,并应 工作

    【讨论】:

      猜你喜欢
      • 2014-06-30
      • 2019-09-28
      • 1970-01-01
      • 2022-11-20
      • 1970-01-01
      • 1970-01-01
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多