Kubernetesを小さく自習

投稿者: | 5月 23, 2021

Kubernetesを小さく自習しているのをgithubに上げている。
https://github.com/masezou/k8s-study
まぁ、仕事上必要なものをベースにしているので余計なものがあるかもしれないが。

少し解説
git cloneをして貰えばシェルスクリプトがガッサリはいっていくる。gitに上げている理由は、gitの自習と環境が異なってもすぐスクリプトの利用、メンテナンスができるようにしたいため。
ちなみにgitを使う時は、パスワード認証ではなく、証明書認証がいい。パスワード認証はそのうち使えなくなりそうだし、証明書認証だとパスワードを入れる必要がないし。

Ubuntu 20.04.2 4vCPU 8GB RAM 100GB HDDの1VMで利用を想定している。
必要なコマンドが結構どっさり入るが、ほとんどのコマンドがbash completionの設定をしているので、利用しまくると便利というかオプションを覚えないという仕様になっている。

スクリプトは、番号順に実行(引数なし)すれば、勝手に構築される。

0-minio.sh:オブジェクトストレージをサービスで有効にしている。必要なクライアントを結構入れている。

1-buildk8s.sh: Kubernates KINDで動作させている。多分、Mac OSとかWindowsとかでもつかえるのではないかと思う。従来KINDはローカルホストからしか接続させてくれないのだが、IPアドレスで露出しているので、configを持っていけば、自分の端末で利用可能。利用しているKubernets は1.19。
ダッシュボードは使えるが、metric serverがなぜかデータを取ってこない。
また、ネットワーク系のところは、まだ設計が固まっていない。最悪はEdgeRouterのBGPを利用するかと。

2-storage.sh:NFSのストレージ(自身がNFSサーバになる)とHost Pathのストレージが設定される。
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
csi-hostpath-sc (default) hostpath.csi.k8s.io Delete Immediate true 6h58m
nfs-client cluster.local/nfs-subdir-external-provisioner Delete Immediate true 6h58m
standard rancher.io/local-path Delete WaitForFirstConsumer false 7h1m

3-nfs-wordpress.shと3-wordpress.sh:Wordpressサンプル。NFSのほうは動的プロビジョニングで展開、通常のほうは、Host Pathに展開される。

4-kasten.sh:バックアップソフトウェア。ヘルプにはポートフォーワードしてログインしろと書いてあるがわざと認証を入れている。またバックアップ保存先として、オブジェクトストレージあるいは、このスクリプトで作成しているnfs pvcに保存可能。

5-kube-doom.sh/P-pacman.sh:単なるゲーム。

P-portainer.sh:別のダッシュボード

S-service.sh:サービスをポートフォワードさせるスクリプト。あんましメンテナンスしていない。

X-delete-wordpress.sh:wordpressを削除するスクリプト。バックアップ検証用

Y-delete-kind-cluster.sh:KINDクラスタを削除するスクリプト。再作成は、1-buildk8s.shから実行すればいい。

という感じだが、スクリプトを実行(最低でも1-buildk8s.shと2-storage.sh)をすれば構築が完了するが、スクリプトの中身を理解するほうが重要と思われる。。。というか自分もよくのぞいている。

コメントを残す