LoginSignup
2
3

More than 5 years have passed since last update.

IKSとオンプレK8sのkubectlの認証情報のマージ方法

Last updated at Posted at 2018-06-01

IBM Cloud Kubernetes Service(以下 IKS) では、kubectl の認証情報を bxコマンドで認証情報をダウンロードして、環境変数 KUBECONFIG にダウンロード先のパスを設定するという流れになる。 それでは、オンプレ開発環境のKubernetesとの相互運用では、ただちにkubectlコマンドの接続先を切り替えられないので不便である。

また、KUBECONFIGをログイン・シェルに設定して、利用した場合、KUBECONFIGのパスがkubectlの設定記録先となり、bx cluster-config mycluster でダウンロードすると、後から追加したクラスタ情報を上書きされて消えてしまう。

これでは、オンプレのK8sクラスタとIKSの相互運用に支障があるので、IKSからダウンロードした認証情報とオンプレの.kube/configの認証情報とマージする方法をメモとして残しておく。

認証情報のダウンロード

次のコマンドで、認証情報をダウンロードする。 正常すると、次の様にexport KUBECONFIGが表示される。通常は、コピペして環境変数をセットするなどして、kubectlが認識できる様にする。

$ bx cluster-config [クラスタ名] --admin
...

mycluster の構成は正常にダウンロードされました。 環境変数をエクスポートして Kubernetes の使用を開始してください。

export KUBECONFIG=/Users/maho/.bluemix/plugins/container-service/clusters/mycluster-admin/kube-config-tok02-mycluster.yml

PEMファイルのコピー

ダウンロード先のディレクトリを移動して、pemファイルを $HOME/.kube へコピーする。

$ cd mycluster5-admin/
$ ls -al
total 32
drwx------  6 maho  staff   204  6  1 15:08 .
drwxr-xr-x  6 maho  staff   204  6  1 17:07 ..
-rw-r--r--  1 maho  staff  3243  5 31 17:24 admin-key.pem
-rw-r--r--  1 maho  staff  1822  5 31 17:24 admin.pem
-rw-r--r--  1 maho  staff  1887  5 31 17:24 ca-tok02-mycluster5.pem
-rw-r--r--  1 maho  staff   470  6  1 15:08 kube-config-tok02-mycluster5.yml

ファイルのマージ

ダウンロードされてきた認証情報ファイルは、マニフェストで利用されるYAML形式になっており、cluster, context, usersの3つのパートがある。

kube-config-tok02-mycluster.yml
apiVersion: v1
clusters:
- cluster:
    certificate-authority: ca-tok02-mycluster.pem
    server: https://***.***.***.***:21878
  name: mycluster
contexts:
- context:
    cluster: mycluster
    namespace: default
    user: admin
  name: mycluster
current-context: mycluster
kind: Config
preferences: {}
users:
- name: admin
  user:
    client-certificate: admin.pem
    client-key: admin-key.pem

下記の3個のパートを $HOME/.kube/configの同パートにコピペで挿入する。

- cluster:
    certificate-authority: ca-tok02-mycluster.pem
    server: https://***.***.***.***:21878
  name: mycluster
- context:
    cluster: mycluster
    namespace: default
    user: admin
  name: mycluster
- name: admin
  user:
    client-certificate: admin.pem
    client-key: admin-key.pem

切り替え

kubectl config get-contexts を実行すると、オンプレとIKSのコンテキストがリストされる。

kubectl config use-context mycluster とすれば、IKS側へ切り替わる。

あとは、kubectlの操作は同じです。

参考資料

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3