2017-12-27 5 views
0

kubeadmで作成されたクラスタを指すように私の地元のkubectlを取得しようとしたとき、私はいくつかの問題に実行しています:kubeadmを使用して作成した2つ以上のクラスタを指すようにローカルkubectlを設定するにはどうすればよいですか?

  1. kubeadmから生成kubectlの設定ファイルは、同じユーザー名、クラスタ名、およびコンテキスト名を使用し、単にダウンロードして$KUBECONFIGに追加することはできません。
  2. クラスタまたはユーザの名前を変更するkubectlコマンドはありません。
  3. kubeadmから生成される設定ファイルには、client-key-dataおよびclient-certificate-dataというプロパティがあります。これらは、新しいユーザまたはクラスタを作成するときにkubectlによって認識されるフィールドではありません。
  4. kubeadmで作成されたクラスタでは、単純なユーザー名とパスワードでアクセスできないようです。証明書の情報が必要なようです。

~/.kube/configファイルの内容を文字列操作(グロス)で修正することに限定されているようですが、これは避けたいものです。誰にもこれに対する解決策がありますか?

+0

あなたは[kubectl設定](https://kubernetes-v1-4.github.io/docs/user-guide/kubectl/kubectl_config/) 'kubectl設定使用コンテキストを使用する必要がCONTEXT_NAME' – jittakal

+0

問題は、kubeadmによって作成されたすべてのクラスタのコンテキスト名、ユーザー名、およびクラスタ名が設定ファイル内で同じであることです – Mike

答えて

0

現在のところ、私が知っている限り、自動的に別のkube設定ファイルを1つにマージするツールはありません。これは効果的です。個人的に私は.kube/configを手動でテキストエディタで操作します。それは終わりの仕事のそれほどではありません。

0

1つのオプションは、クラスタに異なる設定ファイルを使用することです。 クラスタごとに1つのファイルを作成し、それらを区別するのに役立つ意味のある名前を付けるディレクトリ(私は~/.kubeを使用)に入れます(たとえば、クラスタ識別子を使用できます)。あなたはまた、上記のすべてを書いて避けるために、お気に入りのシェルでエイリアスを作成することができます

KUBECONFIG=/path/to/the/config/file kubectl get po 

すると、次のような、あなたがkubectlを実行したときに別の設定ファイルを選択するKUBECONFIG環境変数を設定することができますコマンド。

alias mykube="KUBECONFIG=/path/to/the/config/file kubectl get po" 
mykube get po 
関連する問題