0

ADO パイプライン環境機能を使用して、マルチステージ ADO パイプラインをセットアップしようとしています。

ステージ 1: Maven を使用して Spring-boot ベースの Java マイクロサービスを構築します。

ステージ 2: Helm 3 を使用して上記をデプロイします。HelmDeploy@0 タスクは、Helm チャートを使用してこのサービスをデプロイしたい tools-dev (kubernetes 名前空間) というリソースを持つ環境を使用します。

最後のステップで次のエラーで失敗します。

/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**

フィニッシュ:兜展開

設定セクションで指定された kubectl コマンドを使用して、環境内に 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 証明書や認証局などの認証情報が提供されます。これらは、がアクセスできる~/.kube/configように、Kubernetes 構成ファイル (デフォルト: )に保存する必要があります。kubectlhelm

また、 Helm 3: ローカル Kubernetes への接続時に x509 エラーが発生した場合の回答を確認してください。

Helm は、このパス $HOME/.kube/config で kubeconfig を探します。

このコマンドを実行してください

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

これにより、ディレクトリ内の必要なパスに構成が保存され、機能します

于 2021-02-16T08:54:52.743 に答える