2016-03-30 6 views
7

azureでkubernetesクラスタを実行しています。ローカルkubectlコマンドからクラスタにアクセスする方法は何ですか?私はhereを参照しましたが、kubernetesマスターノードにはkube設定ファイルはありません。また、kubectl config viewの結果はazureのリモートkubernetesクラスタにアクセスするためのkubectlコマンドを設定します。

apiVersion: v1 
clusters: [] 
contexts: [] 
current-context: "" 
kind: Config 
preferences: {} 
users: [] 

答えて

16

クラスタ内のいずれかのノードにssh接続せずにリモートkubernetesクラスタにアクセスする方法が見つかりました。実行して

apiVersion: v1 
clusters:  
- cluster: 
    server: http://<master-ip>:<port> 
    name: test 
contexts: 
- context: 
    cluster: test 
    user: test 
    name: test 

その後設定コンテキスト:あなたは以下のように〜/ .kube/configファイルを編集する必要があり、この後

kubectl config use-context test 

は、クラスタと対話することができるはずです。

注:リンク以下の認証とキーの使用を追加するには:http://kubernetes.io/docs/user-guide/kubeconfig-file/

代わりに、あなたはまた、Azureのセットアップが唯一の外部からのsshのポートを公開するコマンド

kubectl config set-cluster test-cluster --server=http://<master-ip>:<port> --api-version=v1 
kubectl config use-context test-cluster 
0

どのようにしてクラスタを設定しましたか?クラスタにリモートでアクセスするには、kubeconfigファイルが必要です(存在しないように見えます)。セットアップスクリプトは、クラスタ展開プロセスの一部としてローカルのkubeconfigファイルを生成します。そうしないと、 。他の誰かがクラスタを展開した場合は、リンクしたページの指示に従って、クラスタに接続するために必要なクライアント認証情報のコピーを取得する必要があります。

+0

私はクラスタhttp://kubernetes.io/docsを起動するには次のリンクを使用しています:これは、Azureの上で動作しますが、かどうかわからない、それはAWS担保(KOPS)クラスタ上で働いていました/ getting-started-guides/coreos/azure/kubeconfigファイルへのポインタが見つかりません。 –

+1

例を通して、マスターノードで 'kubectl'コマンドを実行したようです。あなたはマスターにログインし、そこでコマンドを実行できますか? –

+0

はいマスターノードからクラスタにアクセスできます。しかし、私は遠隔から(マスターノードにssh'ingせずに)アクセスする際に助けが必要です。 –

0

を以下試すことができます。 これは/utput/kube_xxxxxxxxxx_ssh_confの下にあります。 私がしたことは、sshポートトンネルを追加してマシン上でsshを利用できるようにすることでした。デフォルトの検索kubectl私のローカルマシンのポート8080を(マッピングし

LocalForward 8080 127.0.0.1:8080

:上記のファイルにし、「ホスト*」セクションの下 ゴーは怒鳴るような別の行を追加します。コンテキスト)をリモートマシンの8080ポートに送信します。 kobe-00にsshをオープンすると、普通のドキュメントが表示されるので、特別な設定をせずにローカルkubectlからの呼び出しを行うことができます。

2

--kubeconfigパラメータを渡すことで、kubeconfigのファイルパスを定義することもできます。

たとえば、ローカルKubernetesホストの~/.kube/configを、ローカルプロジェクトの~/myproject/.kube/configにコピーします。 ~/myprojectでは、kubectl get pods --kubeconfig ./.kube/configを実行して、リモートKubernetesサーバーのポッドを一覧表示できます。

リモートKubernetesサーバからの値をコピーすると、kubectl config viewの値が十分でないことに注意してください。設定ファイルの秘密が表示されないためです。代わりに、cat ~/.kube/configのような処理を行うか、scpを使用して完全なファイルの内容を取得する必要があります。

参照:https://kubernetes.io/docs/tasks/administer-cluster/share-configuration/

関連する問題