minikubeを使ってみた
由於最近我在業務中頻繁地使用Kubernetes,所以我想趁這個機會用minikube來學習並玩弄一下。
minikue是一种可以在本地环境轻松启动Kubernetes的工具,可以在Mac等本地环境上构建单节点的Kubernetes集群。
环境
-
- MaxOS(Apple M2m Ventura)
- Docker version 20.10.24
安装minikube
按照官方文档安装minikube,可参考以下链接:
https://minikube.sigs.k8s.io/docs/start/
启动Minikube
minikubeを起動するには下記の要件を満たしていないといけないようです。
-
- 2 CPUs or more
-
- 2GB of free memory
-
- 20GB of free disk space
-
- Internet connection
- Container or virtual machine manager, such as: Docker, QEMU, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMware Fusion/Workstation
请准备一个容器或虚拟机,因为没有它们是无法进行后续操作的。在本文中,我们将使用Docker。
minikubeをインストールできたら下記のコマンドでminikubeをstartします。(起動に20秒くらいかかりました)
$ minikube start
起動することができたらkubectlを使って操作することができるようになるようです。kubectlをインストールしていない方は下記などを参考にインストールしておいてください。
https://kubernetes.io/ja/docs/tasks/tools/install-kubectl/
我试着获取一下Pod列表。
% kubectl get po -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-787d4945fb-jk587 1/1 Running 1752 (66m ago) 136d
kube-system etcd-minikube 1/1 Running 2 (66m ago) 136d
kube-system kube-apiserver-minikube 1/1 Running 2 (66m ago) 136d
kube-system kube-controller-manager-minikube 1/1 Running 2 (66m ago) 136d
kube-system kube-proxy-l9qd2 1/1 Running 2 (66m ago) 136d
kube-system kube-scheduler-minikube 1/1 Running 2 (66m ago) 136d
kube-system storage-provisioner 1/1 Running 1768 (2m35s ago) 136d
-A选项用于显示所有命名空间中的Pod的选项
仪表盘显示
您可以通过执行以下命令在本地环境中查看Kubernetes仪表板。
$ minikube dashboard
アプリケーションのデプロイ
让我们将应用程序部署在本地构建的Kubernetes集群上。
服务
下記のコマンドでデプロイメントを作成して、ポート8080で公開してみます。
# deployment作成
$ kubectl create deployment hello-minikube --image=kicbase/echo-server
deployment.apps/hello-minikube created
# portの公開
$ kubectl expose deployment hello-minikube --type=NodePort --port=8080
service/hello-minikube exposed
请确认是否已经创建了服务。
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-minikube NodePort 10.101.160.112 <none> 8080:31193/TCP 23s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 136d
port-forwardしてブラウザからlocalhost:7080にアクセスしてみます。
$ kubectl port-forward service/hello-minikube 7080:8080
使用minikube进行集群管理
停止Kubernetes集群
$ minikube pause
minikubeのクラスター停止
$ minikube stop
更改内存设置
$ minikube config set memory {value}