安装

官方文档

amd64

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

arm64

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64
sudo install minikube-linux-arm64 /usr/local/bin/minikube
  • 没安装 kubectl 可以使用 minikube kubectl -- 代替

kubectl 安装

官方文档

x86_64

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

arm64

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version
kubectl cluster-info
kubectl get nodes

启动集群

minikube start --force
kubectl get po -A
minikube version

Web 界面

minikube dashboard --port=19888
# http://127.0.0.1:19888/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

部署应用程序

NodePort

kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
kubectl expose deployment hello-minikube --type=NodePort --port=8080
kubectl get services hello-minikube
minikube service hello-minikube
# 或
kubectl port-forward service/hello-minikube 7080:8080

LoadBalancer

kubectl create deployment balanced --image=kicbase/echo-server:1.0
kubectl expose deployment balanced --type=LoadBalancer --port=8080
minikube tunnel
kubectl get services balanced

Ingress

minikube addons enable ingress

管理集群

minikube pause
minikube unpause
minikube stop
minikube config set memory 9001
minikube addons list
minikube delete --all

常用命令速查

# 启动/停止
minikube start
minikube start --kubernetes-version=latest
minikube start -p cluster2
minikube stop
minikube delete
minikube delete --all

# Dashboard
minikube dashboard
minikube dashboard --port=19888
minikube dashboard --url

# 插件管理
minikube addons list
minikube addons enable <name>
minikube addons disable <name>
minikube addons open <name>

# 通过 minikube kubectl 代替 kubectl
minikube kubectl -- get pods
minikube kubectl -- --help

教程 kubernetes101

文档

创建集群

minikube version
minikube start
kubectl version
kubectl cluster-info
kubectl get nodes

部署应用

kubectl create deployment nginx --image=nginx:latest
kubectl get deployments
kubectl proxy
curl http://localhost:8001/version

查看应用

kubectl get pods
kubectl describe pods
kubectl logs $POD_NAME
kubectl exec $POD_NAME -- env
kubectl exec -ti $POD_NAME -- bash

公开应用

kubectl expose deployment/nginx --type="NodePort" --port 80
kubectl get services
kubectl describe services/nginx
curl $(minikube ip):$NODE_PORT

# 标签操作
kubectl label pods $POD_NAME version=v1
kubectl get pods -l version=v1
kubectl delete service -l app=nginx

扩缩容

kubectl scale deployments/nginx --replicas=4
kubectl get pods -o wide
kubectl get rs
kubectl describe deployments/nginx

# Load Balancing 验证
kubectl describe services/nginx
curl $(minikube ip):$NODE_PORT

kubectl scale deployments/nginx --replicas=2

滚动更新与回滚

kubectl set image deployments/nginx nginx=nginx:v2
kubectl rollout status deployments/nginx
kubectl describe services/nginx

# 回滚
kubectl set image deployments/nginx nginx=nginx:v10
kubectl rollout undo deployments/nginx
kubectl describe pods