このドキュメントで説明されているソフトウェアは、サポートされなくなったか、拡張サポートされています。
Oracleでは、現在サポートされているリリースにアップグレードすることをお勧めします。

機械翻訳について

第3章 Kubernetesコマンドライン・インタフェース(kubectl)の設定

この章では、Kubernetesコマンドライン・インタフェース(kubectl)の設定方法について説明します。 kubectlコマンドはKubernetesの一部であり、Kubernetesクラスタにデプロイするコンテナ化されたアプリケーションの作成および管理に使用されます。

kubectlユーティリティは、Kubernetesクラスタに対してコマンドを実行するKubernetes APIサーバーとのインタフェースになるコマンドライン・ツールです。 kubectlコマンドは通常、クラスタのコントロール・プレーン・ノードで実行されますが、オペレータ・ノードを使用することもできます。 kubectlユーティリティは、実質的にクラスタとクラスタ内のすべてのノードに完全な管理権限を付与します。

この章では、コントロール・プレーン・ノードまたはオペレータ・ノードからKubernetesクラスタにアクセスするためのkubectlコマンドの設定について説明します。

3.1 コントロール・プレーン・ノードでのkubectlの設定

コントロール・プレーン・ノードでkubectlコマンドを設定するには、次のコマンドをコピーしてコントロール・プレーン・ノードのホーム・ディレクトリのターミナルに貼り付けます。

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config
echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc

kubectlコマンドが使用できることを確認します。

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-control1.example.com 1/1 Running 0 23h kube-apiserver-control1.example.com 1/1 Running 0 23h kube-controller-control1.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-control1.example.com 1/1 Running 0 23h kubernetes-dashboard-7646bf6898-d6x2m 1/1 Running 0 23h

3.2 オペレータ・ノードでのkubectlの設定

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

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

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

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

    olcnectl 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コマンドが使用できることを確認します。

    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-control1.example.com 1/1 Running 0 23h kube-apiserver-control1.example.com 1/1 Running 0 23h kube-controller-control1.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-control1.example.com 1/1 Running 0 23h kubernetes-dashboard-7646bf6898-d6x2m 1/1 Running 0 23h