私はKubernetesを使用しており、kubeconfig
で使用されている管理者証明書を最近更新しました。ただし、それを行った後、すべてのhelm
コマンドは次のように失敗します。
Error: Get https://cluster.mysite.com/api/v1/namespaces/kube-system/pods?labelSelector=app%3Dhelm%2Cname%3Dtiller: x509: certificate signed by unknown authority
kubectl
は正常に機能します:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip-10-1-0-34.eu-central-1.compute.internal Ready master 42d v1.7.10+coreos.0
ip-10-1-1-51.eu-central-1.compute.internal Ready master 42d v1.7.10+coreos.0
ip-10-1-10-120.eu-central-1.compute.internal Ready <none> 42d v1.7.10+coreos.0
ip-10-1-10-135.eu-central-1.compute.internal Ready <none> 27d v1.7.10+coreos.0
ip-10-1-11-71.eu-central-1.compute.internal Ready <none> 42d v1.7.10+coreos.0
ip-10-1-12-199.eu-central-1.compute.internal Ready <none> 8d v1.7.10+coreos.0
ip-10-1-2-110.eu-central-1.compute.internal Ready master 42d v1.7.10+coreos.0
私が読むことができる限り、helm
はkubectl
と同じ証明書を使用することになっているため、kubectl
の仕組みに興味がありますが、helm
しませんか?
これは実稼働クラスターであり、内部リリースはヘルムチャートで処理されるため、解決することが不可欠です。
任意のヒントをいただければ幸いです。
回避策として、証明書の検証を無効にしてみてください。 Helmはkube構成ファイルを使用します(デフォルトでは~/.kube/config
)。あなたは付け加えられます insecure-skip-tls-verify: true
(cluster
セクションの場合):
clusters:
- cluster:
server: https://cluster.mysite.com
insecure-skip-tls-verify: true
name: default
Helm/tillerを再インストールしようとしましたか?
kubectl delete deployment tiller-deploy --namespace kube-system
helm init
また、クラスター構成で無効な証明書を構成したかどうかも確認してください。
私の場合、エラーはHelmリポジトリからの信頼できない証明書が原因でした。証明書をダウンロードし、 --ca-file
オプションが問題を解決しました(少なくともHelmバージョン3では)。
helm repo add --ca-file /path/to/certificate.crt repoName https://example/repository
--ca-file
文字列、このCAバンドルを使用してHTTPS対応サーバーの証明書を確認します
--ca-fileでrepoを追加することで問題は解決しましたが、以下の投稿コマンドを使用してそのrepoからダウンロードしようとしたときに、不明な機関によって署名されたx509:証明書がまだ取得されています
helm dependency update helm/myStuff
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "myRepo" chart repository
Update Complete. ⎈Happy Helming!⎈
Saving 18 charts
Downloading myService from repo https://myCharts.me/
Save error occurred: could not download https://myCharts.me/stuff.tgz ...
x509: certificate signed by unknown authority
Deleting newly downloaded charts, restoring pre-update state
--ca-fileでリポジトリを追加する以外に、リポジトリ証明書をダウンロードして現在のユーザーとしてインストールする必要がありました。
すべての証明書を次のストアに配置します:信頼されたルート証明機関:
証明書をインストールした後、コンピューターを再起動する必要もありました。再起動後、ブラウザを開いてリポジトリURLを貼り付けると、警告を出さずにサイトを信頼して接続します(これにより、証明書が正常にインストールされたことがわかります)。
先に進んでコマンドを実行できます。今回は証明書を選択するはずです。
helm dependency update helm/myStuff
....
Saving 18 charts
Downloading service1 from repo https://myCharts.me/
Downloading service2 from repo https://myCharts.me/
....