k8s常用命令

 

说明:在master上面操作

0 进入pod

kubectl exec -it settlement-5486f6cf57-9jkx2 /bin/bash

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节点无法访问