このブログを検索

この記事の内容は、個人の見解、検証の範囲のものであり、誤りがある可能性があります。
個人の責任において情報活用をお願いします。


2023年4月28日金曜日

Rancharでkubernetesの管理をしてみる 第1回 『Rancharの構築とkubernetesの追加』

kubernetesでいろいろと構築することを過去にやってきましたので、今回からは管理系のお勉強をしたいと思います。
早速導入ですが、これはDockerのコマンド一発でできてしまいました。
世の中便利になりましたね・・・

公式ドキュメント:https://www.rancher.co.jp/quick-start/

ただ、それを知っているかどうかとそれを見つけられるかどうかなど、いろいろなものがありすぎて複雑だなぁと感じる私は地球の重力に魂を引かれているのでしょう。
Dockerの入っているマシンを用意したら以下のコマンドを実行して下さい。
このあとkubernetesのクラスタを追加するので、各ノードと通信できるマシンという点だけ注意してください。
# docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged rancher/rancher
これだけで作業完了です。
コンテナ起動時にホストへのhttps通信をコンテナに転送するように設定されているので、ブラウザでアクセス可能ですがそのままだとパスワードがわからないので確認しておきましょう。

パスワードの確認はコンテナのlogから確認するので、コンテナのIDを確認します。
# sudo docker ps
CONTAINER ID   IMAGE             COMMAND           CREATED          STATUS          PORTS                                                                      NAMES
977d197a93b5   rancher/rancher   "entrypoint.sh"   41 seconds ago   Up 35 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   frosty_meninsky
この「CONTAINER ID」を使ってログを表示するとその中にパスワードが入っているので以下のコマンドでそれを抽出します。
# docker logs 977d197a93b5 2>&1 | grep "Bootstrap Passwor ログイン後は、パスワードの再設定を行います。
12文字以上という結構長いパスワード要求でちょっと困りました(個人的にはNSX以外で初めてでしたね。)

ログインすると画面はこんな感じです。
ここからkubernetesの構築を行うこともできるようなのですが、既存のkubernetesをこのRancharに追加してみたいと思います。
クラスターのページから、『Inport Existing』を実行します。
『Import any Kubernetes cluster』の『Generic』をクリックします。
登録するクラスタの名前を設定します。
ここでは k8s-1 と設定しました『Create』をクリックします。
そうすると、クラスターの追加を行う Kubectl のコマンドが表示されます。
証明書の問題が発生した場合は2つ目のコマンドを使うように案内されるため、そちらを使いましょう
実際に実行してみると、以下のものが作られます。
clusterrole.rbac.authorization.k8s.io/proxy-clusterrole-kubeapiserver created
clusterrolebinding.rbac.authorization.k8s.io/proxy-role-binding-kubernetes-master created
namespace/cattle-system created
serviceaccount/cattle created
clusterrolebinding.rbac.authorization.k8s.io/cattle-admin-binding created
secret/cattle-credentials-7e1f7cb created
clusterrole.rbac.authorization.k8s.io/cattle-admin created
Warning: spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].key: beta.kubernetes.io/os is deprecated since v1.14; use "kubernetes.io/os" instead
deployment.apps/cattle-cluster-agent created
正常に展開できた場合はしばらくして、RancherのUIに戻ると『Active』と追加スタクラスターで表示されます。
Rancherのホームを表示すると、クラスターの右端のボタンからなんとkubectlを実行可能なshellが起動可能です。

先ほどクラスターを追加した際に作成された名前空間『cattle-system』にあるpodを確認してみましょう。
こんな感じで複数k8sクラスターがあってもここからk8sの切り替えてkubectlコマンドが実行できるので楽でいいですね。