k8s常用命令
说明:在master上面操作
1 删除
kubectl delete deploy/nginx 删除镜像
kubectl delete svc/nginx 删除pod
2 创建
kubectl run nginx --replicas=3 --labels="app=example" --image=nginx:1.10 --port=80
kubectl get pods
3 查看
kubectl get ns 查看命名空间
kubectl get all
kubectl get deploy
kubectl get pods -l app=example
kubectl get pods -o wide #查看pod在那台服务器上面
kubectl get pods --show-labels ##查看标签
NAME READY STATUS RESTARTS AGE LABELS
nginx-66d64dcdf8-7cmcb 1/1 Running 0 58m app=example,pod-template-hash=2282087894
nginx-66d64dcdf8-d6cmj 1/1 Running 0 58m app=example,pod-template-hash=2282087894
nginx-66d64dcdf8-tbt2c 1/1 Running 0 58m app=example,pod-template-hash=2282087894
#####################################
kubectl get pods -l app=example ##查看这个标签的信息
NAME READY STATUS RESTARTS AGE
nginx-66d64dcdf8-7cmcb 1/1 Running 0 1h
nginx-66d64dcdf8-d6cmj 1/1 Running 0 1h
nginx-66d64dcdf8-tbt2c 1/1 Running 0 1h
kubectl label pod xxx app=label111 --overwirte=True 更改标签
4 发布
kubectl expose deployment nginx --port=88 --type=NodePort --target-port=80 --name=nginx-service
查看端口
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.10.10.1 <none> 443/TCP 2d
nginx-service NodePort 10.10.10.191 <none> 88:44935/TCP 55m
5 故障排除
kubectl describe po/nginx-66d64dcdf8-7cmcb 查看具体的pod详情
kubectl logs nginx-66d64dcdf8-tbt2c 查看pod的日志
kubectl logs nginx-66d64dcdf8-tbt2c -c test # 查看日志,test是容器的名字,如果一个pod里有多个容器
kubectl exec -it nginx-66d64dcdf8-tbt2c bash 进入到pod里面
6 更新,编辑
kubectl set image deployment/nginx nginx=nginx:1.11 更新nginx版本
kubectl edit deploy/nginx 查看版本是否更新(也可以更新版本) 编辑完之后,直接保存即可
kubectl get all 先用这个查看出名字,下面的这个命令才可以使用
kubectl describe po/nginx-56ff7b8c6d-frphs 查看具体的详细信息,包括使用版本
kubectl rollout history deploy/nginx 查看历史版本
REVISION CHANGE-CAUSE
1 <none>
2 <none>
3 <none>
4 kubectl set image deployment/nginx nginx=nginx:1.13 --record=true
7 回滚
kubectl rollout undo deployment/nginx 回滚到上一个镜像
8 扩容或者删除
kubectl scale deployment nginx --replicas=5 增加到5个pod
kubectl scale deployment myapp --replicas=0 #如果是0个就是删除
如果想变小改变数字即可
9 整个流程演示
9.1运行两个pod
run 后面跟的是控制器的名称
kubectl run myapp1 --replicas=2 --image=wangyanglinux/myapp:v1 --port=80
9.2 开放端口默认是clusterip
kubectl expose deployment myapp1 --port=30000 --target-port=80
9.3 查看网络模式
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3h3m
myapp1 NodePort 10.99.248.235 <none> 30000:32649/TCP 14m
9.4 查看控制器
kubectl get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
myapp 0/0 0 0 34m
myapp1 2/2 2 2 16m
9.5 浏览器访问(nodeip)
注意,如果在浏览器访问必须是nodeip类型的,如果是在node上面访问可以是clusterip,但是在master节点无法访问