3 Kubernetesコマンドライン・インタフェースの設定(kubectl)
この章では、Kubernetes CLI (kubectl)の設定方法について説明します。 kubectlコマンドは、Kubernetesの一部であり、Kubernetesクラスタにデプロイするコンテナ化されたアプリケーションを作成および管理するために使用されます。
kubectlユーティリティは、Kubernetes APIサーバーとインタフェースして、Kubernetesクラスタに対してコマンドを実行するコマンドライン・ツールです。 kubectlコマンドは、通常、クラスタの「コントロール・プレーン」ノード(推奨オプション)で実行されますが、必要に応じて、クラスタ内にない外部ノードでkubectlアクセスを設定できます。 kubectlユーティリティは、クラスタおよびクラスタ内のすべてのノードに対する完全な管理権限を効果的に付与します。
この章では、コントロール・プレーン・ノードまたは外部ノード(Kubernetesクラスタの一部ではない)からKubernetesクラスタにアクセスするためのkubectlコマンドの設定について説明します。
コントロール・プレーン・ノードでの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コマンドを使用できることを確認します:
kubectl get deployments --all-namespaces出力は次のようになります:
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
externalip-validation-system externalip-validation-webhook 1/1 1 1 29m
kube-system coredns 2/2 2 2 30m
kubernetes-dashboard kubernetes-dashboard 1/1 1 1 29m
ocne-modules ocne-module-operator 1/1 1 1 29m非クラスタ・ノードでのkubectlの設定
Oracle Cloud Native Environmentを使用すると、オペレータ・ノードから多数の環境を作成できます。 これを考慮して、Kubernetesクラスタのコントロール・プレーン・ノードでkubectlを使用することをお薦めします。 クラスタの外部からkubectlを使用し、多数の環境がデプロイされている場合、予期しないKubernetesクラスタを誤って管理する可能性があります。 ただし、kubectlをクラスタの外部から実行するように設定する必要がある場合は、構成する必要があります。
次の例は、Kubernetesクラスタにアクセスするために、kubectlを使用してクラスタ内にないホストを設定する方法を示しています。
ノート:
次の例では、ノードのOSがOracle Linuxであると想定しています。 ただし、Kubernetesコミュニティ・パッケージを利用して、macOSおよびMicrosoft Windowsホストにkubectlを設定することもできます。 Microsoft Windowsホストの場合は、Linux 2 (WLS 2)用のWindowsサブシステムもインストールする必要があります。
クラスタにないホストにkubectlを設定するには:
-
オペレータ・ノードで、
olcnectl module property getコマンドを使用して、クラスタのKubernetes構成ファイルを取得します:olcnectl module property get \ --environment-name myenvironment \ --name mycluster \ --property kubecfg | base64 -d > kubeconfig.yamlクラスタへのアクセスに必要なKubernetes構成情報を含む
kubeconfig.yamlという名前のファイルが作成されます。 -
ホストでKubernetesファイルを設定します。 ホストにログインし、オペレータ・ノードからホスト上のローカル・ディレクトリに
kubeconfig.yamlをコピーします。注意:
ホスト間で機密情報を含む構成ファイルをコピーする場合は、セキュリティのベスト・プラクティスに従ってください。
-
ホーム・ディレクトリに
.kubeというサブディレクトリを作成します:mkdir -p $HOME/.kube -
kubeconfig.yamlファイルを.kubeディレクトリにコピーします:cp /path_to_file/kubeconfig.yaml $HOME/.kube/config -
このファイルへのパスを
KUBECONFIG環境変数にエクスポートします。export KUBECONFIG=$HOME/.kube/config -
この環境変数を永続的に設定するには、
.bashrcファイルに追加します:echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc
-
-
ホストに
kubectlをインストールします。必要に応じてリポジトリまたはチャネルを有効にすることで、Oracle Cloud Native Environmentパッケージへの必要なアクセス権を持つノードを設定します。 詳細は、「インストール」を参照してください。
kubectlをインストールします:sudo dnf install kubectl -
kubectlコマンドを使用できることを確認します:kubectl get deployments --all-namespaces出力は次のようになります:
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE externalip-validation-system externalip-validation-webhook 1/1 1 1 29m kube-system coredns 2/2 2 2 30m kubernetes-dashboard kubernetes-dashboard 1/1 1 1 29m ocne-modules ocne-module-operator 1/1 1 1 29m