gcloudとminikubeの間でkubectlクラスタを切り替える方法

私はKubernetesをローカル環境(MacBookでminikubeが動作)とGoogle Container Engine(GCE, Kubernetes on Google Cloud)の2つの異なる環境でうまく動作させています。 MacBook/ローカル環境でYAMLファイルを開発・テストし、完成したらGCEで試しています。

現状では、それぞれの環境を個別に操作する必要がありますね。 ローカル環境でYAMLファイルを編集し、準備ができたらGCE環境に(gitで)クローンして、それを使用/デプロイする必要があります。 これは少々面倒なプロセスです。

理想としては、Macbookからkubectlを使用して、ローカルのminikubeとGCEのKubernetes環境を簡単に切り替え、YAMLファイルがどこで使用されているかを簡単に判断できるようにしたいです。これを行うために、コンテキストを切り替える簡単な方法はありますか?

ソリューション

でローカル(minikube)からgcloudへの切り替えが可能です。

kubectl config use-context CONTEXT_NAME` です。

をクリックすると、すべてのコンテキストが一覧表示されます。

kubectl config get-contexts` を使用します。

ローカルとgcloudで異なる環境を作成し、別々のyamlファイルに記述することができます。

解説 (1)

異なる環境のレポ間で YAML ファイルをクローンすることは、確かに理想的です。環境ごとに異なるパラメーターを抽出することで、YAMLファイルをテンプレート化することです。

もちろん、テンプレートエンジンを使って、YAML の値を分離して、特定の環境用の YAML を作成することもできます。しかし、これは[Helm Charts][1]を採用すれば簡単にできることです。Github リポジトリ][2]の安定したディレクトリで、いくつかのサンプルチャートを見ることができます。

Wordpressチャート][3]の例を挙げると、2つの環境に対して2つの異なるコマンドを用意することができます。

開発者向け

``helm install --name dev-release --set \? wordpressUsername=dev_admin, . wordpressPassword=dev_password, \ mariadb.mariadbRootPassword=dev_secretpasswordの略です💢💢。 安定版/ワードプレス



これらの値を CLI で渡す必要はありません。aptly ``values.yml`` というファイルに値を保存し、環境ごとに異なるファイルを作成することができます。

Helmチャートの標準に変換する作業が必要ですが、その努力は報われるでしょう。

  [1]: https://helm.sh/
  [2]: https://github.com/kubernetes/charts
  [3]: https://github.com/kubernetes/charts/tree/master/stable/wordpress
解説 (0)

はい、これはあなたが質問していることだと思います。 現在の設定を見るには、kubectl config viewを使います。kubectlは以下の場所から設定を読み込み、マージします(順番に)。

--kubeconfig=/path/to/.kube/config command line flag
KUBECONFIG=/path/to/.kube/config env variable
$HOME/.kube/config  - The DEFAULT

私は複数のクラスタを切り替えることが多いので、--kubeconfigを使用しています。

詳しくはこちらをご覧ください。 https://kubernetes.io/docs/tasks/administer-cluster/share-configuration/https://kubernetes.io/docs/concepts/cluster-administration/authenticate-across-clusters-kubeconfig/

解説 (1)