NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix Kubernetes Engine クラスタに接続してみる。(kubectl-karbon Plugin)

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 プラグインがインストールされています。

以上。

©2023 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。