Kubernetes は kubectl コマンド ライン ツールを使って操作します。kubectl コマンドで Kubernetes の API サーバーを介してクラスターに命令を与えます。
kubectl のインストール
Kubernetes クラスターを構成した場合には、マスター ノードに kubectl がインストールされています。それ以外の端末に kubectl をインストールする場合には、次の情報を参考にします。
kubectlのインストールおよびセットアップ | Kubernetes
kubectl の構文
kubectl コマンドは次のような記述方式で実行します。
kubectl [command] [TYPE] [NAME] [flags]
要素 | 説明 | 例 |
command | 1 つ以上のリソースに対して実行する操作を指定します。 | get, describe, create, delete |
TYPE | 操作するリソースのタイプを指定します。複数形や省略形での記述も可能です。 | pod, service, node |
NAME | 操作するリソースの名前を指定します。省略した場合はすべてのリソースが対象となります。 | sample-pod |
flags | オプションのフラグを指定します。 | -s, -i |
Context
Context は、kubectl コマンドで操作するクラスターの接続情報と接続に用いる認証情報の組み合わせです。kubectl では kubeconfig に記載された Context を用いて接続先のクラスターを判別します。
kubeconfig は次の優先順位で参照します。何も指定がない場合は既定のファイルとなります。
- –kubeconfig で指定したファイル
- 環境変数
KUBECONFIG
で指定したファイル $HOME/.kube/config
ファイル (既定)
kubeconfig は次のように構成されます。
apiVersion: v1
kind: Config
preferences: {}
# 接続先クラスター情報
clusters:
- cluster:
name: Lab-kubernetes
server: https://192.168.11.38:6443
# 認証情報
users:
- name: Lab-kubernetes-admin
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
# コンテキスト = 接続先クラスターと認証情報の組み合わせ
contexts:
- name: Lab-kubernetes
context:
cluster: Lab-kubernetes
user: Lab-kubernetes-admin
# 利用するコンテキストの指定
current-context: Lab-kubernetes
クラスター情報、認証情報、コンテキストはそれぞれ複数記述することができ、利用するコンテキストは current-context
で指定します。
kubeconfig の表示
kubeconfig の情報は次のコマンドで表示できます。
kubectl config view
また、--minify
オプションを付与すると現在のコンテキストの情報のみ表示できます。
kubectl config view --minify
Context の一覧表示
Context の一覧は次のコマンドで表示できます。
kubectl config get-contexts
現在の Context の表示
現在の Context は次のコマンドで表示できます。
kubectl config current-contexts
Context の切り替え
Context の切り替えは次のコマンドで実行できます。
kubectl config use-contexts [コンテキスト名]
kubeconfig の定義追加
kubeconfig の定義はそれぞれ次のようなコマンドで追加できます。
kubectl config set-cluster [クラスター名] --server=https://[サーバー IP アドレス or FQDN]:[ポート番号]
kubectl config set-credentials [認証情報名] --client-certificate=[クライアント証明書のパス] --client-key=[クライアント証明書キーのパス] --embed-certs=true
kubectl config set-contexts [コンテキスト名] --cluster=[クラスター名] --user=[認証情報名] --namespace=[名前空間名]
コメント