k8s集群命令手册

129 阅读2分钟

部署应用

kubectl create deployment kubernetes-bootcamp \
--image=docker.io/jocatalin/kubernetes-bootcamp:v1 \
--replicas=2 \
--port=8080

image.png

删除应用

kubectl delete deployment/kubernetes-bootcamp

查看集群信息

查看应用列表

kubectl get deployments

image.png

查看应用详情

kubectl describe deployments

image.png

查看应用详情(指定标签)

kubectl describe deployments -l app=kubernetes-bootcamp

image.png

查看Pod列表

kubectl get pods

image.png

查看Pod列表(指定标签)

kubectl get pods -l app=kubernetes-bootcamp

image.png

查询Pod名称

kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}'

image.png

查看Pod日志

kubectl logs [PodName]

image.png

查看Pod详情

kubectl describe pods

查看环境变量

kubectl exec [PodName] -- env

image.png

Pod相关

在Pod中执行命令

首先需要进入Pod的bash界面

kubectl exec -ti [PodName] -- bash

image.png
随后可执行诸如以下操作

cat server.js

image.png

curl localhost:8080

image.png
如果觉得先进入pod再执行命令有点麻烦,可以一行命令执行

kubectl exec -ti [PodName] -- curl localhost:8080

image.png
退出Pod可使用exit命令。

为Pod设置新标签

kubectl label pods [PodName] version=v1

image.png
设置标签前:
image.png
设置标签后:
image.png

暴露应用访问入口

查询Service列表

kubectl get services

image.png

对外开放端口以访问k8s集群

kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080

image.png

查看服务详情

kubectl describe services/kubernetes-bootcamp

image.png

根据标签查询服务

kubectl get services -l app=kubernetes-bootcamp

image.png

通过开放的端口访问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}}')

image.png

删除service

kubectl delete services/kubernetes-bootcamp

image.png

根据标签删除服务

kubectl delete service -l app=kubernetes-bootcamp

image.png

扩缩应用副本

查看副本数

kubectl get rs

image.png

增加副本

kubectl scale deployments/kubernetes-bootcamp --replicas=4

image.png
image.png 此时访问expose出的接口,可以看到自动负载到不同的Pod上。

curl $(minikube ip):$(kubectl get services/kubernetes-bootcamp -o go-template='{{(index .spec.ports 0).nodePort}}')

image.png

减少副本

kubectl scale deployments/kubernetes-bootcamp --replicas=2

image.png

更新应用

滚动更新

kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2

image.png
接下来可以访问下app验证是否已经更新了应用版本

curl $(minikube ip):$(kubectl get services/kubernetes-bootcamp -o go-template='{{(index .spec.ports 0).nodePort}}')

image.png

回退应用

首先尝试更新到新版本v10

kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v10

image.png
查看更新情况

kubectl get deployments
kubectl get pods

image.png
可以看到应用ready一栏使用没有达到4/4,status存在着ImagePullBackOff的问题,查看详细信息:

kubectl describe pods

image.png
滚动更新失败,需要回退:

kubectl rollout undo deployments/kubernetes-bootcamp

image.png