创建 Minikube 集群

安装 minikube.

启动:

  1. minikube start

创建 Deployment

  1. kubectl create deployment hello-node --image=redis:6

我自己使用 redis.

查看 deployment:

$ kubectl get deployments
NAME         READY   UP-TO-DATE   AVAILABLE   AGE
hello-node   1/1     1            1           5m17s

查看 pod:

$ kubectl get pods
NAME                          READY   STATUS    RESTARTS   AGE
hello-node-86ddc8d867-zsr9j   1/1     Running   0          6m48s

查看集群事件:

$ kubectl get events

查看 kubectl 配置:

kubectl config view

创建 Service

使用 service 暴露 pod.

暴露端口:

$ kubectl expose deployment hello-node --type=LoadBalancer --port=6379
service/hello-node exposed

查看 service:

$ kubectl get services
NAME         TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
hello-node   LoadBalancer   10.109.141.199   <pending>     6479:31884/TCP   3m16s
kubernetes   ClusterIP      10.96.0.1        <none>        443/TCP          22h

为负载均衡配置监听端口:

$ minikube service hello-node
|-----------|------------|-------------|-----------------------------|
| NAMESPACE |    NAME    | TARGET PORT |             URL             |
|-----------|------------|-------------|-----------------------------|
| default   | hello-node |        6379 | http://192.168.99.100:31223 |
|-----------|------------|-------------|-----------------------------|
🎉  正通过默认浏览器打开服务 default/hello-node...

我的是 redis, 它显示的是 http, 但是可以用 redis gui client 访问.

启用插件

列出插件:

$ minikube addons list
|-----------------------------|----------|--------------|
|         ADDON NAME          | PROFILE  |    STATUS    |
|-----------------------------|----------|--------------|
| ambassador                  | minikube | disabled     |
| auto-pause                  | minikube | disabled     |
| csi-hostpath-driver         | minikube | disabled     |
| dashboard                   | minikube | enabled ✅   |
| default-storageclass        | minikube | enabled ✅   |
| efk                         | minikube | disabled     |
| freshpod                    | minikube | disabled     |
| gcp-auth                    | minikube | disabled     |
| gvisor                      | minikube | disabled     |
| helm-tiller                 | minikube | disabled     |
| ingress                     | minikube | disabled     |
| ingress-dns                 | minikube | disabled     |
| istio                       | minikube | disabled     |
| istio-provisioner           | minikube | disabled     |
| kubevirt                    | minikube | disabled     |
| logviewer                   | minikube | disabled     |
| metallb                     | minikube | disabled     |
| metrics-server              | minikube | disabled     |
| nvidia-driver-installer     | minikube | disabled     |
| nvidia-gpu-device-plugin    | minikube | disabled     |
| olm                         | minikube | disabled     |
| pod-security-policy         | minikube | disabled     |
| registry                    | minikube | disabled     |
| registry-aliases            | minikube | disabled     |
| registry-creds              | minikube | disabled     |
| storage-provisioner         | minikube | enabled ✅   |
| storage-provisioner-gluster | minikube | disabled     |
| volumesnapshots             | minikube | disabled     |
|-----------------------------|----------|--------------|

启用插件:

minikube addons enable metrics-server

查看 pd 和 service:

$ kubectl get pod,svc -n kube-system
NAME                                   READY   STATUS         RESTARTS   AGE
pod/coredns-74ff55c5b-hxsrg            1/1     Running        1          22h
pod/etcd-minikube                      1/1     Running        1          22h
pod/kube-apiserver-minikube            1/1     Running        1          22h
pod/kube-controller-manager-minikube   1/1     Running        1          22h
pod/kube-proxy-zctp7                   1/1     Running        1          22h
pod/kube-scheduler-minikube            1/1     Running        1          22h
pod/metrics-server-56c4f8c9d6-mxtqq    0/1     ErrImagePull   0          24s
pod/storage-provisioner                1/1     Running        2          22h

NAME                     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE
service/kube-dns         ClusterIP   10.96.0.10       <none>        53/UDP,53/TCP,9153/TCP   22h
service/metrics-server   ClusterIP   10.105.237.100   <none>        443/TCP                  24s

禁用插件:

minikube addons disable metrics-server

清理

应该是删除之前创建的:

kubectl delete service hello-node
kubectl delete deployment hello-node

停止 Minikube VM:

minikube stop

删除 Minikube VM:

minikube delete