Kubernetes the hard way を初学者目線で解説する ~ #9 kubectlのリモートアクセス設定


はじめに

30代未経験からエンジニアを目指して勉強中のYNと申します。
インフラ初学者の私ですが、Kubernetes the hard wayを進めるにあたって、インフラに関する基本的な知識を体系的に学ぶことができました。
そこで、初学者目線での学びなどを本記事にまとめておきたいと思います。

目次

こちらをご覧ください

kubectlのリモートアクセス設定

クラスター外からkubectlコマンドを打つことができる設定を行います。
今回はクラスター内のmaster-1ノードに新しくkubectlの設定を行いますが、下記3つが揃っている環境であれば、クラスター外でもAPI-serverと通信するこができます。

  • ca.crt
  • admin.crt
  • admin.key

↓この図のように、LBを軽油してAPI-serverにリクエストを行います。

master-1.node
{
  KUBERNETES_LB_ADDRESS=192.168.5.30

  kubectl config set-cluster kubernetes-the-hard-way \
    --certificate-authority=ca.crt \
    --embed-certs=true \
    --server=https://${KUBERNETES_LB_ADDRESS}:6443

  kubectl config set-credentials admin \
    --client-certificate=admin.crt \
    --client-key=admin.key

  kubectl config set-context kubernetes-the-hard-way \
    --cluster=kubernetes-the-hard-way \
    --user=admin

  kubectl config use-context kubernetes-the-hard-way
}

リモートアクセス動作確認

master-1.node
kubectl get componentstatuses

今までの通信経路との違い

下図のように、いままでの通信経路でAPI-serverと通信する場合は --kubeconfig=admin.kubeconfigをつけます。

 kubectl get componentstatuses --kubeconfig=admin.kubeconfig