部署应用
kubectl create deployment kubernetes-bootcamp \
--image=docker.io/jocatalin/kubernetes-bootcamp:v1 \
--replicas=2 \
--port=8080
删除应用
kubectl delete deployment/kubernetes-bootcamp
查看集群信息
查看应用列表
kubectl get deployments
查看应用详情
kubectl describe deployments
查看应用详情(指定标签)
kubectl describe deployments -l app=kubernetes-bootcamp
查看Pod列表
kubectl get pods
查看Pod列表(指定标签)
kubectl get pods -l app=kubernetes-bootcamp
查询Pod名称
kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}'
查看Pod日志
kubectl logs [PodName]
查看Pod详情
kubectl describe pods
查看环境变量
kubectl exec [PodName] -- env
Pod相关
在Pod中执行命令
首先需要进入Pod的bash界面
kubectl exec -ti [PodName] -- bash
随后可执行诸如以下操作
cat server.js
curl localhost:8080
如果觉得先进入pod再执行命令有点麻烦,可以一行命令执行
kubectl exec -ti [PodName] -- curl localhost:8080
退出Pod可使用exit命令。
为Pod设置新标签
kubectl label pods [PodName] version=v1
设置标签前:
设置标签后:
暴露应用访问入口
查询Service列表
kubectl get services
对外开放端口以访问k8s集群
kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080
查看服务详情
kubectl describe services/kubernetes-bootcamp
根据标签查询服务
kubectl get services -l app=kubernetes-bootcamp
通过开放的端口访问k8s应用
# 使用minikube安装的k8s集群可以使用minikube ip获取,也可使用kubectl cluster-info查看ip
curl $(minikube ip):$(kubectl get services/kubernetes-bootcamp -o go-template='{{(index .spec.ports 0).nodePort}}')
删除service
kubectl delete services/kubernetes-bootcamp
根据标签删除服务
kubectl delete service -l app=kubernetes-bootcamp
扩缩应用副本
查看副本数
kubectl get rs
增加副本
kubectl scale deployments/kubernetes-bootcamp --replicas=4
此时访问
expose出的接口,可以看到自动负载到不同的Pod上。
curl $(minikube ip):$(kubectl get services/kubernetes-bootcamp -o go-template='{{(index .spec.ports 0).nodePort}}')
减少副本
kubectl scale deployments/kubernetes-bootcamp --replicas=2
更新应用
滚动更新
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
接下来可以访问下app验证是否已经更新了应用版本
curl $(minikube ip):$(kubectl get services/kubernetes-bootcamp -o go-template='{{(index .spec.ports 0).nodePort}}')
回退应用
首先尝试更新到新版本v10
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v10
查看更新情况
kubectl get deployments
kubectl get pods
可以看到应用ready一栏使用没有达到4/4,status存在着ImagePullBackOff的问题,查看详细信息:
kubectl describe pods
滚动更新失败,需要回退:
kubectl rollout undo deployments/kubernetes-bootcamp