Kubernetes メモ
Note
- minikube の起動には、CPU が 2 個以上必要です。
- 2023/10 現在、minikube は containerd には対応していないらしい。ドライバに Docker や Qemu を使うと、CPU の仮想化支援機能やハイパーバイザを気にせずに使用できそうです。
環境作成
Docker
- 
Ubuntu Linux - 
古いバージョンの削除 (インストールしていた場合) 
- 
APT リポジトリの設定 - 
関連ツールのインストール 
- 
GPG key のインストール 
- 
リポジトリの追加 
- 
Docker のインストール 
- 
ユーザ権限の設定 
- 
自動起動設定 
 
- 
 
- 
Kubernetes
- 
Debian / Ubuntu sudo apt-get update sudo apt-get install -y apt-transport-https gnupg2 curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | \ sudo apt-key add - echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | \ sudo tee -a /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubectl
kubectl コマンドの補完
- 
bash kubectl completion bash >> $HOME/.bashrc_kuberctl echo 'source $HOME/.bashrc_kuberctl' >> $HOME/.bashrc source $HOME/.bashrc- 
kubectl tabキーで_get_comp_words_by_ref: command not foundが出るBash の自動補完パッケージが足りないので、追加すれば解消します。 
 自動補完パッケージインストール後、再ログインすると有効になります。
 
- 
minikube
- 
Debian / Ubuntu 
動作確認
Hello Minikube
解説は minikube使ってみて、Kubernetesに入門してみた気分になる が分かりやすいです。
- 
Start Cluster (結構時間がかかります) 
- 
hello-minikube のデプロイ $ kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10 deployment.apps/hello-minikube createddeployment.apps/hello-minikube created- 
デプロイの確認 
- 
Pod を確認 
- 
クラスタイベントの確認 $ kubectl get events LAST SEEN TYPE REASON OBJECT MESSAGE 8m56s Normal Scheduled pod/hello-minikube-5db9b875f7-chxrv Successfully assigned default/hello-minikube-5db9b875f7-chxrv to minikube 8m53s Normal Pulling pod/hello-minikube-5db9b875f7-chxrv Pulling image "k8s.gcr.io/echoserver:1.10" 8m17s Normal Started pod/hello-minikube-5db9b875f7-chxrv Started container echoserver 8m10s Normal Pulled pod/hello-minikube-5db9b875f7-chxrv Successfully pulled image "k8s.gcr.io/echoserver:1.10" in 1m3.811994362s (1m3.812681651s including waiting) 8m9s Normal Created pod/hello-minikube-5db9b875f7-chxrv Created container echoserver 8m56s Normal SuccessfulCreate replicaset/hello-minikube-5db9b875f7 Created pod: hello-minikube-5db9b875f7-chxrv 8m57s Normal ScalingReplicaSet deployment/hello-minikube Scaled up replica set hello-minikube-5db9b875f7 to 1 18m Normal Starting node/minikube Starting kubelet. 18m Normal NodeHasSufficientMemory node/minikube Node minikube status is now: NodeHasSufficientMemory 18m Normal NodeHasNoDiskPressure node/minikube Node minikube status is now: NodeHasNoDiskPressure 18m Normal NodeHasSufficientPID node/minikube Node minikube status is now: NodeHasSufficientPID 18m Normal NodeAllocatableEnforced node/minikube Updated Node Allocatable limit across pods 17m Normal Starting node/minikube 17m Normal RegisteredNode node/minikube Node minikube event: Registered Node minikube in Controller
- 
クラスタの設定確認 
 
- 
- 
サービスの作成 $ kubectl expose deployment hello-minikube --type=LoadBalancer --port=8080 service/hello-minikube exposed- 
サービスの確認 
- 
デプロイされたコンテナの動作確認 $ curl $(minikube service hello-minikube --url) Hostname: hello-minikube-5db9b875f7-chxrv Pod Information: -no pod information available- Server values: server_version=nginx: 1.13.3 - lua: 10008 Request Information: client_address=10.244.0.1 method=GET real path=/ query= request_version=1.1 request_scheme=http request_uri=http://192.168.49.2:8080/ Request Headers: accept=*/* host=192.168.49.2:30374 user-agent=curl/7.68.0 Request Body: -no body in request-
- 
デプロイされたコンテナの動作確認 その2 
 
- 
- 
クリーンアップ 
2048
コンテナイメージ ⇒ Pod の起動 ⇒ サービスの起動、の手順でノードを起動します。
- 
Start Cluster (結構時間がかかります) 
- 
Docker イメージ作成 
- 
pod の起動 
- 
サービスの起動 
- 
pod2048 サービスへの接続方法 $ minikube service list |----------------------|---------------------------|--------------|---------------------------| | NAMESPACE | NAME | TARGET PORT | URL | |----------------------|---------------------------|--------------|---------------------------| | default | kubernetes | No node port | | | default | pod2048 | 80 | http://192.168.49.2:32009 | | kube-system | kube-dns | No node port | | | kubernetes-dashboard | dashboard-metrics-scraper | No node port | | | kubernetes-dashboard | kubernetes-dashboard | No node port | | |----------------------|---------------------------|--------------|---------------------------|ブラウザで URL 欄の http://192.168.49.2:32009を参照すると 2048 が楽しめます。
Kubernets ダッシュボード
- 
起動 dashboard コマンドを実行してしばらくすると URL が表示されます。ただ、localhost しかバインドしてないっぽいので、mini kube をインストールした PC に GUI 環境がない場合は SSH トンネル経由でアクセスすることになります。 