このドキュメントで説明されているソフトウェアは、サポートされなくなったか、拡張サポートされています。
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コマンドを実行するには、オペレータ・ノードで次のステップを実行します。
-
Kubernetes構成を取得して、その構成をオペレータ・ノードのローカル・ファイルにコピーします。 olcnectl module property getコマンドを使用して、
kubernetes
モジュールのkubecfg
プロパティからKubernetes構成を取得します。 たとえば:olcnectl module property get \ --environment-name myenvironment \ --name mycluster \ --property kubecfg | base64 -d > kubeconfig.yaml
-
kubeconfig.yaml
ファイルは、--kubeconfig
オプションを使用することでkubectlの実行時に直接使用できます。 たとえば:kubectl get pods -n kube-system --kubeconfig kubeconfig.yaml
-
また、Kubernetes構成を保存すると、
--kubeconfig
オプションを使用する必要がなくなります。 ホーム・ディレクトリ内に、.kube
サブディレクトリを作成します。mkdir -p $HOME/.kube
-
Kubernetes
kubeconfig.yaml
ファイルを.kube
ディレクトリにコピーします。cp kubeconfig.yaml $HOME/.kube/config
-
このファイルへのパスを
KUBECONFIG
環境変数にエクスポートします。export KUBECONFIG=$HOME/.kube/config
この環境変数を永続的に設定するには、その変数を
.bashrc
ファイルに追加します。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