k8s基础整理

时间:2022-07-22
本文章向大家介绍k8s基础整理,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

基本命令

1、创建一个实例

# kubectl run kubernetes-bootcamp --image=docker.io/jocatalin/kubernetes-bootcamp:v1 --port=8080
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
deployment.apps/kubernetes-bootcamp created

这里简单说明:kubernetes-bootcamp为实例名,–image指定docker镜像,–port指定对外提供的端口

2、列出所有的运行pod信息

# kubectl get pods
NAME                                   READY   STATUS    RESTARTS   AGE
busybox                                1/1     Running   2          18h
kubernetes-bootcamp-6c5cfd894b-6bqqr   1/1     Running   0          6m36s

3、列出Pod以及运行Pod节点信息

# kubectl get pods -o wide
NAME                                   READY   STATUS    RESTARTS   AGE     IP           NODE    NOMINATED NODE   READINESS GATES
busybox                                1/1     Running   2          18h     10.244.1.6   node1   <none>           <none>
kubernetes-bootcamp-6c5cfd894b-6bqqr   1/1     Running   0          7m42s   10.244.2.2   node2   <none>           <none>

4、映射端口使其能在外部访问

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

5、查看应用被映射到节点的端口

# kubectl get services
NAME                  TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
kubernetes-bootcamp   NodePort    10.108.171.2   <none>        8080:32723/TCP   59s

6、查看运行副本数

# kubectl get deployments
NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
kubernetes-bootcamp   1/1     1            1           17m

7、增加运行副本

# kubectl scale deployments/kubernetes-bootcamp --replicas=3
deployment.extensions/kubernetes-bootcamp scaled

再次查看

# kubectl get deployment
NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
kubernetes-bootcamp   3/3     3            3           19m

# kubectl get pods
NAME                                   READY   STATUS    RESTARTS   AGE
busybox                                1/1     Running   2          18h
kubernetes-bootcamp-6c5cfd894b-6bqqr   1/1     Running   0          19m
kubernetes-bootcamp-6c5cfd894b-npk42   1/1     Running   0          61s
kubernetes-bootcamp-6c5cfd894b-vx5c5   1/1     Running   0          61s

再次访问,会轮循到不同的pod中

# curl 192.168.152.143:32723
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6c5cfd894b-6bqqr | v=1
[root@master ~]# curl 192.168.152.143:32723
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6c5cfd894b-npk42 | v=1
[root@master ~]# curl 192.168.152.143:32723
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6c5cfd894b-6bqqr | v=1

8、升级应用

# kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
deployment.extensions/kubernetes-bootcamp image updated

升级过程中之前v1版本的Pod状态变为Terminating,同时创建几个running状态的pod

查看升级后的版本

# curl 192.168.152.143:32723
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-5bf4d5689b-jrv69 | v=2

9、回滚升级后的应用

]# kubectl rollout undo deployments/kubernetes-bootcamp
deployment.extensions/kubernetes-bootcamp rolled back

回滚过程同样是先把状态设定为Terminating,同时启动几个running状态的pod

# kubectl get pods
NAME                                   READY   STATUS        RESTARTS   AGE
busybox                                1/1     Running       2          18h
kubernetes-bootcamp-5bf4d5689b-jrv69   1/1     Terminating   0          2m26s
kubernetes-bootcamp-5bf4d5689b-nmnns   1/1     Terminating   0          2m24s
kubernetes-bootcamp-5bf4d5689b-thzqr   1/1     Terminating   0          2m37s
kubernetes-bootcamp-6c5cfd894b-4mz5z   1/1     Running       0          7s
kubernetes-bootcamp-6c5cfd894b-cl929   1/1     Running       0          5s
kubernetes-bootcamp-6c5cfd894b-q2g66   1/1     Running       0          3s