Minikube環境を構成してKubernetes実験を行う
Minikube環境の構築Kubernetes実験用
以前に説明したKubernetsクラスタの構成図では、1つ以上の制御プレーン(Master Node)と複数のWorker Nodeが表示されます.
クバーネディスは実際には上記の方法で実行されますが、実際に導入されたアプリケーションではなく簡単なテストを行うと、クラスタを構築するコストが高くなります.
Minikube
Minikube公式ドキュメント
Minikubeという名前のように小さなクーバーネディスクラスタと言える
本書では、Minikubeはローカル・クーバー内のクラスタを迅速に構築するためのツールです.
プライマリノードとワークノードからなるクラスタではありません
プライマリノードにアクセスする構成部品とワークノードにアクセスする構成部品をローカルホストに結合します.
Minikubeのインストール
それでは練習後の勉強内容のためにMinikubeをセットしておきましょう
クーバーネスインストールガイド
インストールの詳細については、上記の正式なドキュメントを参照してください.
AWSのt 3ですインストールのために大きなインスタンスが作成されました.
1.MinikubeとKubectlのインストール
まず、CLIツールKubectlをインストールし、MinikubeとKuber Nationにコマンドを渡して、クバーネッティクラスタを構築します.
# 클러스터 구축을 위한 minikube 설치
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube
# 구축한 클러스터를 제어하기 위한 kubectl 설치
$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
$ sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
# 설치정보 확인
$ minikube version
minikube version: v1.25.2
commit: 362d5fdc0a3dbee389b3d3f1034e8023e72bd3a7
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.5", GitCommit:"c285e781331a3785a7f436042c65c5641ce8a9e9", GitTreeState:"clean", BuildDate:"2022-03-16T15:58:47Z", GoVersion:"go1.17.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.3", GitCommit:"816c97ab8cff8a1c72eccca1026f7820e93e0d25", GitTreeState:"clean", BuildDate:"2022-01-25T21:19:12Z", GoVersion:"go1.17.6", Compiler:"gc", Platform:"linux/amd64"}
2.Minikubeの実行
次に、インストールされているMinikubeを使用してクラスタを構築します.
# minikube 클러스터 시작
$ minikube start
* minikube v1.25.2 on Ubuntu 20.04
* Unable to pick a default driver. Here is what was considered, in preference order:
* Alternatively you could install one of these drivers:
- docker: Not installed: exec: "docker": executable file not found in $PATH
- kvm2: Not installed: exec: "virsh": executable file not found in $PATH
- podman: Not installed: exec: "podman": executable file not found in $PATH
- vmware: Not installed: exec: "docker-machine-driver-vmware": executable file not found in $PATH
- virtualbox: Not installed: unable to find VBoxManage in $PATH
X Exiting due to DRV_NOT_DETECTED: No possible driver was detected. Try specifying --driver, or see https://minikube.sigs.k8s.io/docs/start/
minikube startコマンドが正常に実行されません.これは、docker、kvm 2、podman、virtualboxなどの同期ランタイム環境が構成されていないことを意味する.
Dockerランタイム環境を構築し、minkubeを再実行します.
# Docker 런타임 설치
$ apt-get update
$ apt-get install docker.io
# minikube 실행
$ minikube start
* minikube v1.25.2 on Ubuntu 20.04
* Automatically selected the docker driver. Other choices: none, ssh
* The "docker" driver should not be used with root privileges.
* If you are running minikube within a VM, consider using --driver=none:
* https://minikube.sigs.k8s.io/docs/reference/drivers/none/
X Exiting due to DRV_AS_ROOT: The "docker" driver should not be used with root privileges.
Dockerのインストール後にminikubeが正常に動作しない.今回は、root権限でdockerドライバを実行しないように警告メッセージが表示されます.
これは、root権限を使用してdockerを実行すると、セキュリティ・ホールが発生する可能性があるためです.
ソリューションは、ルート勘定科目ではなく勘定科目を作成して実行するか、--driver-noneオプションを追加してminikubeを実行します.
他のアカウントを作成した場合は、ローカル環境でテストを行うクラスタ構築であるため、minikubeを実行するために--driver=noneオプションを追加する必要があります.
# root 권한 경고 메시지 무시 옵션 부여
$ minikube start --driver=none
* minikube v1.25.2 on Ubuntu 20.04
* Using the none driver based on user configuration
X Exiting due to GUEST_MISSING_CONNTRACK: Sorry, Kubernetes 1.23.3 requires conntrack to be installed in root's path
オプションの追加と実行中にエラーが発生しました.Kubernetes 1.23.3バージョンはconntrackをインストールして実行する必要があります.
conntrackをインストールして再実行します.
# conntrack 설치
$ apt-get install conntrack
# minikube 실행
$ minikube start --driver=none
* minikube v1.25.2 on Ubuntu 20.04
* Using the none driver based on user configuration
X The requested memory allocation of 1940MiB does not leave room for system overhead (total system memory: 1940MiB). You may face stability issues.
* Suggestion: Start minikube with less memory allocated: 'minikube start --memory=1940mb'
* Starting control plane node minikube in cluster minikube
* Running on localhost (CPUs=2, Memory=1940MB, Disk=19788MB) ...
* OS release is Ubuntu 20.04.3 LTS
* Preparing Kubernetes v1.23.3 on Docker 20.10.7 ...
- kubelet.resolv-conf=/run/systemd/resolve/resolv.conf
- kubelet.housekeeping-interval=5m
> kubectl.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
> kubelet.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
> kubeadm.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
> kubectl: 44.43 MiB / 44.43 MiB [-------------] 100.00% 41.37 MiB p/s 1.3s
> kubeadm: 43.12 MiB / 43.12 MiB [-------------] 100.00% 42.72 MiB p/s 1.2s
> kubelet: 118.75 MiB / 118.75 MiB [-----------] 100.00% 45.38 MiB p/s 2.8s
- Generating certificates and keys ...
- Booting up control plane ...
- Configuring RBAC rules ...
* Configuring local host environment ...
*
! The 'none' driver is designed for experts who need to integrate with an existing VM
* Most users should use the newer 'docker' driver instead, which does not require root!
* For more information, see: https://minikube.sigs.k8s.io/docs/reference/drivers/none/
*
! kubectl and minikube configuration will be stored in /root
! To use kubectl or minikube commands as your own user, you may need to relocate them. For example, to overwrite your own settings, run:
*
- sudo mv /root/.kube /root/.minikube $HOME
- sudo chown -R $USER $HOME/.kube $HOME/.minikube
*
* This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true
* Verifying Kubernetes components...
- Using image gcr.io/k8s-minikube/storage-provisioner:v5
* Enabled addons: default-storageclass, storage-provisioner
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
正常に実行されました.3.設置確認
次に、クラスタ構成が正常かどうかを確認します.
$ kubectl get pod --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-64897985d-748ll 1/1 Running 0 81s
kube-system etcd-ip-10-0-2-146 1/1 Running 0 96s
kube-system kube-apiserver-ip-10-0-2-146 1/1 Running 0 92s
kube-system kube-controller-manager-ip-10-0-2-146 1/1 Running 0 92s
kube-system kube-proxy-m7rjw 1/1 Running 0 81s
kube-system kube-scheduler-ip-10-0-2-146 1/1 Running 0 95s
kube-system storage-provisioner 1/1 Running 0 91s
kubectl get pod-all-namespaceでアップロードされたpodをすべてチェックしました.クバーネディスの制御平面コンポーネントetcd、api-server、controller、schedulerが正常に構成されていることがわかります.
Reference
この問題について(Minikube環境を構成してKubernetes実験を行う), 我々は、より多くの情報をここで見つけました https://velog.io/@squarebird/Kubernetes-실습을-위한-Minikube-환경-구성テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol