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/

image.png

启动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
image.png

アプリケーションのデプロイ

让我们将应用程序部署在本地构建的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
image.png

使用minikube进行集群管理

停止Kubernetes集群

$ minikube pause

minikubeのクラスター停止

$ minikube stop

更改内存设置

$ minikube config set memory {value}
广告
将在 10 秒后关闭
bannerAds