Nutanix Kubernetes Engine(NKE)で作成した Kubernetes クラスタに、作業用 Linux マシンから kubectl-karbon プラグインを利用して接続してみます。
kubectl-karbon プラグインは、GitHub で公開されています。
今回の内容です。
今回の環境
下記の投稿で kubectl をインストールした Linux マシンの環境を、そのまま利用します。ちなみに、ちょっと古いですが Oracle Linux 7 を使用しています。
kubectl v1.26.8 がインストールされています。
$ kubectl version --short --client Flag --short has been deprecated, and will be removed in the future. The --short output will become the default. Client Version: v1.26.8 Kustomize Version: v4.5.7
kubeconfig は、カレント ディレクトリの kubeconfig を使用します。ただし、この時点ではファイルが存在しません。
$ export KUBECONFIG=$(pwd)/kubeconfig
kubectl-karbon のインストール
Linux 用の kubectl-karbon プラグインをインストールします。
$ curl -skOL https://github.com/nutanix/kubectl-karbon/releases/download/v0.11.5/kubectl-karbon_v0.11.5_linux_amd64.tar.gz
ダウンロード舌ファイルを展開します。tar コマンドがインストールされていない場合は、事前にインストールしておきます。
$ tar zxvf kubectl-karbon_v0.11.5_linux_amd64.tar.gz LICENSE README.md kubectl-karbon
kubectl と同じ(PATH 環境変数に含まれている)ディレクトリにインストールします。
$ install kubectl-karbon $(pwd)/bin/
これで、kubectl karbon コマンドが実行できるようになります。
$ kubectl karbon version kubectl-karbon: version 0.11.5 (455ac89)
kubectl karbon コマンドでの NKE クラスタへの接続
まず、ヘルプを確認しておきます。
$ kubectl karbon help Karbon Plugin for kubectl. Usage: kubectl-karbon [command] Available Commands: completion Generate the autocompletion script for the specified shell help Help about any command list Get the list of k8s clusters login Authenticate user with Nutanix Prism Central logout Remove all authentication items for the selected Karbon cluster version Prints the version of the plugin Flags: --config string Karbon plugin config file (default ~/.kubectl-karbon.yaml) -h, --help help for kubectl-karbon --kubeconfig string Path to the kubeconfig file to use for CLI requests (default "/home/gowatana/.kube/config") --request-timeout int Request timeout in seconds for HTTP client (default 30) -v, --verbose Print verbose logging information Use "kubectl-karbon [command] --help" for more information about a command.
kubectl karbon login コマンドのヘルプです。
$ kubectl karbon login --help Authenticate user with Nutanix Prism Central and create a local kubeconfig file for the selected cluster. If option enabled retrieve SSH key/cert and add them to ssh-agent or in file in ~/.ssh/ folder Usage: kubectl-karbon login [flags] Flags: --cluster strings Karbon cluster(s) to connect to (multiple coma separated cluster names) --force Overwrite file(s) if already exist -h, --help help for login -k, --insecure Skip certificate verification (this is insecure) --keyring Use keyring to store and retrieve credential --kubie Store kubeconfig in independent file in kubie-path directory --kubie-path string Path to kubie kubeconfig directory (default "/home/gowatana/.kube/kubie/") --merge Use context feature for kubeconfig --port int Port to run Application server on (default 9440) --server string Address of the PC to authenticate against --ssh-agent Add Key and Cert in SSH agent --ssh-file Save Key and Cert in ~/.ssh/ directory -u, --user string Username to authenticate (default "gowatana") Global Flags: --config string Karbon plugin config file (default ~/.kubectl-karbon.yaml) --kubeconfig string Path to the kubeconfig file to use for CLI requests (default "/home/gowatana/.kube/config") --request-timeout int Request timeout in seconds for HTTP client (default 30) -v, --verbose Print verbose logging information
kubectl karbon login でログインしてみます。ここでは、下記のオプションを指定しています。
- --server: Prism Central のアドレスを指定(lab-nxpc-01.go-lab.jp)
- --user: Prism Central のユーザ(admin)
- --cluster: NKE クラスタ(nke-02)
- --insecure: 証明書エラーを無視する。
コマンドを実行して、パスワードを入力します。
$ kubectl karbon login --server=lab-nxpc-01.go-lab.jp --user=admin --cluster=nke-02 --insecure Enter admin password: Logged successfully into nke-02 cluster
NKE クラスタのコンテキストが作成され、切り替えられた状態になっています。
$ kubectl config get-contexts CURRENT NAME CLUSTER AUTHINFO NAMESPACE * nke-02-context nke-02 default-user-nke-02
kubeconfig ファイルも、自動的に生成されています。
$ kubectl config view --kubeconfig=$(pwd)/kubeconfig apiVersion: v1 clusters: - cluster: certificate-authority-data: DATA+OMITTED server: https://192.168.12.133:443 name: nke-02 contexts: - context: cluster: nke-02 user: default-user-nke-02 name: nke-02-context current-context: nke-02-context kind: Config preferences: {} users: - name: default-user-nke-02 user: token: REDACTED
NKE のノード情報を取得してみます。
$ kubectl get nodes NAME STATUS ROLES AGE VERSION nke-02-55946c-master-0 Ready control-plane,master 47h v1.26.8 nke-02-55946c-worker-0 Ready node 47h v1.26.8
kubectl karbon logout コマンドを実行すると、kubeconfig が削除されます。
$ kubectl karbon logout --cluster=nke-02 Logged out successfully from nke-02 cluster
NKE クラスタの一覧は、下記のように表示できます。
$ kubectl karbon list --server=lab-nxpc-01.go-lab.jp --user=admin --insecure Enter admin password: NAME VERSION STATUS nke-02 v1.26.8-0 Active
おまけ
NKE クラスタ指定なしの kubectl karbon login
NKE クラスタを指定しないでログインすると、クラスタの選択画面が表示されます。
$ kubectl karbon login --server=lab-nxpc-01.go-lab.jp --user=admin --insecure
画面左下の黄色文字のあたりが、選択メニューになっています。
Nutanix DevStation と kubectl-karbon
DevStation にも、kubectl と kubectl-karbon プラグインがインストールされています。
以上。