手当たり次第に書くんだ

飽きっぽいのは本能

目次に戻る

概要

kubectlはKubernetesの導入時に合わせてインストールされますが、Kubernetesのノードに直接SSHさせたくない場合は、他のホストからリモートでkubectlを実行する必要があります。

kubectlのインストール

公式サイトを参考にkubectlをインストールします。

[root@centos ~]# curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
[root@centos ~]# chmod +x ./kubectl
[root@centos ~]# mv ./kubectl /usr/local/bin/kubectl
[root@centos ~]# kubectl version --client

リモートのKubernetesに接続

認証情報の取得

リモートのKubernetesに接続するには、接続先Kubernetesの認証情報を取得する必要があります。

root@k8s-01:~# kubectl config view --raw

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: xxxxxxxx
    server: https://192.168.68.11:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: xxxxxxxx
    client-key-data: xxxxxxxx

クライアントに認証情報を追加

クライアントに同じ認証情報を追加することでローカルと同じように扱うことができます。

[root@centos ~]# mkdir /root/.kube
[root@centos ~]# cat <<EOF > /root/.kube/config
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: xxxxxxxx
    server: https://192.168.68.11:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: xxxxxxxx
    client-key-data: xxxxxxxx
EOF

リモートのKubernetesの操作

単に作成したCluster上でkubectlを使用する場合は、そのClusterに対してのアクセスのみとなる為、あまり意識する必要はありませんが、リモートの場合は複数のクラスタを切り替えて使うケースが想定されます。

現在の接続先

[root@centos ~]# kubectl config current-context
kubernetes-admin@kubernetes

利用可能な接続先

本稿では1つの接続先しかありませんが、/root/.kube/configに接続先を追記することで複数表示されます。

[root@centos ~]# kubectl config get-contexts
CURRENT   NAME                          CLUSTER      AUTHINFO           NAMESPACE
*         kubernetes-admin@kubernetes   kubernetes   kubernetes-admin

接続先の切り替え

get-contextsのNAMEに表示された値を引数とすることで接続先のClusterを切り替えられます。

[root@centos ~]# kubectl config use-context kubernetes-admin@kubernetes
Switched to context "kubernetes-admin@kubernetes".

対象Clusterの状態確認

リモートでもローカルと同じようにkubectlを使用できます。

[root@centos ~]# kubectl get all
NAME                 READY   STATUS             RESTARTS        AGE
pod/centos           0/1     ImagePullBackOff   1 (4h30m ago)   92d
pod/centos-mc-pod    0/2     ImagePullBackOff   2 (4h30m ago)   92d
pod/centos-min-pod   0/1     ImagePullBackOff   0 (4h30m ago)   90d
pod/centos-pri-pod   0/1     ImagePullBackOff   0 (4h30m ago)   90d
pod/centos8          1/1     Running            4 (4h30m ago)   96d
pod/mc-pod           0/2     ImagePullBackOff   2 (4h30m ago)   92d
pod/mc1-pod          0/2     ImagePullBackOff   2 (4h30m ago)   92d
pod/nginx-min-pod    0/1     ImagePullBackOff   0 (4h30m ago)   89d
pod/samplepod        0/1     ImagePullBackOff   2 (4h30m ago)   95d

NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.96.0.1            443/TCP   97d

目次に戻る

Kubernetes kubectlの導入

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る