Kubernetes APIを介してminikubeを使用してkubernetesクラスターをセットアップする正しい方法は何ですか?現時点では、kubernetesクラスターにアクセスできるポートが見つかりません。
ランニング minikube start
は自動的にkubectl
を構成します。
minikube ip
minikubeがオンになっているIPを取得します。 APIサーバーは、デフォルトで8443で実行されます。
Update:APIサーバーに直接アクセスするには、生成されたカスタムSSL証明書を使用する必要があります。 minikubeによる。クライアント証明書とキーは通常、次の場所に保存されます:~/.minikube/apiserver.crt
および~/.minikube/apiserver.key
。リクエストを行うときは、HTTPSクライアントにそれらをロードする必要があります。
curl
を使用している場合は、--cert
そしてその --key
証明書と鍵ファイルを使用するためのオプション。詳細は docs を確認してください。
Minikubeの実行時にKubernetes APIにアクセスする最も簡単な方法は、
kubectl proxy --port=8080
次に、APIにアクセスできます
curl http://localhost:8080/api/
これにより、ブラウザーでAPIを参照することもできます。 minikubeを使用して開始
minikube start --extra-config=apiserver.Features.EnableSwaggerUI=true
次にkubectl proxy
を起動し、ブラウザで http:// localhost:8080/swagger-ui / に移動します。
あなたはcanを直接カールしてKubernetes APIにアクセスします
curl --cacert ~/.minikube/ca.crt --cert ~/.minikube/client.crt --key ~/.minikube/client.key https://`minikube ip`:8443/api/
しかし、通常はそうすることに利点はありません。一般的なブラウザーはminikubeが生成する証明書に満足していないため、ブラウザーでAPIにアクセスするには、kubectl proxy
を使用する必要があります。
私はたくさんの答えを調べましたが、それらの多くは間違っています。
その前に、IPとトークンが必要です。
IPの取得方法:minikube ip トークンの生成方法:
$export secret=kubectl get serviceaccount default -o json | jq -r '.secrets[].name'
$kubectl get secret $secret -o yaml | grep "token:" | awk {'print $2'} | base64 -D > token
注:base64では、macの場合は-Dを使用しますが、Linuxの場合は-dを使用します。
次に、正しいコマンドは次のとおりです。
#curl -v -k -H --cacert ~/.minikube/ca.crt -H "Authorization: Bearer $(cat ~/YOUR_TOKEN)" "https://{YOUR_IP}:8443/api/v1/pods"
これらの手順は私にとってうまくいきました https://github.com/jenkinsci/kubernetes-plugin#configuration-on-minikube
そこに記載されている他の手順とともに、pfxファイルを生成してアップロードする必要がありました。