2.2.2 オペレータ・ノードのkubectlコマンドの設定

Oracle Linux Cloud Native Environmentを使用すると、オペレータ・ノードから複数の環境を作成できます。そのため、kubectlコマンドは、Kubernetesクラスタ内のマスター・ノードで使用することをお薦めします。オペレータ・ノードからkubectlコマンドを使用すると、複数の環境をデプロイしていた場合、誤って予定していないKubernetesクラスタを管理してしまう可能性があります。オペレータ・ノードでkubectlコマンドを実行するように設定するには、そのように構成する必要があります。

デフォルトでは、kubectlコマンドはオペレータ・ノードからKubernetesに接続するように設定されません。オペレータ・ノードのkubectlコマンドを設定する場合は、Kubernetes構成ファイルのローカル・コピーを作成し、そのファイルを使用してクラスタに接続します。

通常ユーザーとしてkubectlコマンドを実行するには、オペレータ・ノードで次のステップを実行します。

オペレータ・ノードでkubectlを設定するには:

  1. Kubernetes構成を取得して、その構成をオペレータ・ノードのローカル・ファイルにコピーします。olcnectl module property getコマンドを使用して、kubernetesモジュールのkubecfgプロパティからKubernetes構成を取得します。次に例を示します。

    $ olcnectl --api-server 127.0.0.1:8091 module property get \
      --environment-name myenvironment --name mycluster \
      --property kubecfg | base64 -d > kubeconfig.yaml
  2. kubeconfig.yamlファイルは、--kubeconfigオプションを使用することでkubectlの実行時に直接使用できます。次に例を示します。

    $ kubectl get pods -n kube-system --kubeconfig kubeconfig.yaml
  3. また、Kubernetes構成を保存すると、--kubeconfigオプションを使用する必要がなくなります。ホーム・ディレクトリ内に、.kubeサブディレクトリを作成します。

    $ mkdir -p $HOME/.kube
  4. Kubernetes kubeconfig.yamlファイルを.kubeディレクトリにコピーします。

    $ cp kubeconfig.yaml $HOME/.kube/config
  5. このファイルへのパスをKUBECONFIG環境変数にエクスポートします。

    $ export KUBECONFIG=$HOME/.kube/config

    この環境変数を永続的に設定するには、その変数を.bashrcファイルに追加します。

    $ echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc
  6. kubectlコマンドが使用できることを確認します。

    Kubernetesでは、多数のサービスを実行して、クラスタ構成をKubernetesポッドとして実行するコンテナとして管理しています。それらは、マスター・ノードで次のコマンドを実行することで確認できます。

    $ kubectl get pods -n kube-system
    NAME                                    READY   STATUS    RESTARTS   AGE
    coredns-5bc65d7f4b-qzfcc                1/1     Running   0          23h
    coredns-5bc65d7f4b-z64f2                1/1     Running   0          23h
    etcd-master1.example.com                1/1     Running   0          23h
    kube-apiserver-master1.example.com      1/1     Running   0          23h
    kube-controller-master1.example.com     1/1     Running   0          23h
    kube-flannel-ds-2sjbx                   1/1     Running   0          23h
    kube-flannel-ds-njg9r                   1/1     Running   0          23h
    kube-proxy-m2rt2                        1/1     Running   0          23h
    kube-proxy-tbkxd                        1/1     Running   0          23h
    kube-scheduler-master1.example.com      1/1     Running   0          23h
    kubernetes-dashboard-7646bf6898-d6x2m   1/1     Running   0          23h