创建 Minikube 集群
安装 minikube.
启动:
minikube start
创建 Deployment
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
