Kubernetes集群----kubectl管理

Kubernetes集群----kubectl管理

前言: Kubectl 是管理k8s集群的命令行工具,通过生成的 json 格式传递给 apiserver 进行创建、查看、管理的操作 。

一:kubectl语法格式

1、帮助信息
 kubectl --help

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xtfm6A4O-1589031354059)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589016736420.png)]

2、创建
kubectl run  命令
常用语法:
kubectl run NAME --image=image [--env="key=value"参数] [--port=port端口] [--replicas=replicas副本集] [--dry-run=bool状态] [--overrides=inline-json] [--command命令] -- [COMMAND] [args...] [options]`

例:
创建一个名字为nginx-deployment 的资源Pod,镜像是nginx,端口是80,有三个副本数量。

[root@master01 ~]# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3
[root@master01 ~]# kubectl get pods   ‘查看刚创建的Pod资源’

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-poM4cGaZ-1589031354061)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589017113693.png)]

查看3个副本所在的node节点
[root@master01 ~]# kubectl get pods -o wide

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yxYvrerF-1589031354062)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589017330507.png)]

3、查看default空间内的所有资源
[root@master01 ~]# kubectl get all   ‘可看到副本数、控制器数都是3个’

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z5NDGpeh-1589031354064)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589017673502.png)]

4、删除pod资源nginx-deployment
[root@master01 ~]# kubectl delete deploy/nginx-deployment

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AIJfsFKw-1589031354065)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589017781087.png)]

[root@master01 ~]# kubectl delete deploy/nginx
[root@master01 ~]# kubectl get pods     ‘全部被删除了’
No resources found.

二:项目周期

创建 —>发布 —>更新 —>回滚 —>删除

在master01上配置

1、创建nginx的Pod资源
[root@master01 ~]# kubectl run nginx --image=nginx:latest --port=80 --replicas=3

[root@master01 ~]# kubectl get pods,deployment,replicaset
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-7697996758-fgs9m   1/1     Running   0          7m36s
pod/nginx-7697996758-jqhqx   1/1     Running   0          7m36s
pod/nginx-7697996758-tt59h   1/1     Running   0          7m36s

NAME                          DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deployment.extensions/nginx   3         3         3            3           7m36s

NAME                                     DESIRED   CURRENT   READY   AGE
replicaset.extensions/nginx-7697996758   3         3         3       7m36s
2、发布nginx service负载均衡的功能
[root@master01 ~]# kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort
[root@master01 ~]# kubectl get service
‘46971 : NodePort对外提供的端口’

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wc2ejsmO-1589031354066)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589018960594.png)]

[root@master01 ~]# kubectl get pods -o wide    ‘查看网络状态信息’

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A9I2CwE7-1589031354067)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589019194325.png)]

[root@master01 ~]# kubectl get endpoints

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r2UnvPeu-1589031354068)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589019310298.png)]

  • kubernetes里kube-proxy支持三种模式,在v1.8之前使用的是iptables 以及 userspace两种模式,在kubernetes 1.8之后引入了ipvs模式。node节点可安装 ipvsadm工具,用于查看负载均衡的服务端口 。

在node01、node02节点上

3、安装ipvsadm ,并查看
[root@node01 ~]# yum install ipvsadm -y
[root@node01 ~]# ipvsadm -L -n

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j0lF1pXG-1589031354069)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589020176841.png)]

4、在master01节点查看pod资源日志
[root@master01 ~]# kubectl get pods
[root@master01 ~]# kubectl logs nginx-7697996758-fgs9m
[root@master01 ~]# kubectl logs nginx-7697996758-jqhqx
[root@master01 ~]# kubectl logs nginx-7697996758-tt59h

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RqmGIDfa-1589031354069)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589020455457.png)]

5、用浏览器访问pod资源,再查看对应日志信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KN3uQUrH-1589031354070)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589020574223.png)]

[root@master01 ~]# kubectl logs nginx-7697996758-fgs9m  ‘再次访问就可看到对应的日志信息了’

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FWB5zJmI-1589031354071)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589021011810.png)]

6、更新nginx版本

更新版本为1.14版本

​ 打开谷歌浏览器,点击右上角三个点—选择更多工具—点击开发者选项—>找到network—>刷新访问 —>找到headers头部信息,就可以看到nginx版本信息。

在master01节点

7、 通过set命令获取更新的修改模板
[root@master01 ~]# kubectl set --help

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ijGJXGwf-1589031354072)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589021636041.png)]

8、更改nginx为1.14版本
[root@master01 ~]# kubectl set image deployment/nginx nginx=nginx:1.14     ‘更新nginx为1.14版本’

[root@master01 ~]# kubectl get pods -w       ‘-w :开启动态监听状态’
‘ctrl+c结束进程’

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tzZ1InhK-1589031354072)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589021921086.png)]

9、回滚nginx

如业务更新完,大量用户访问出现error问题,那么就要业务回滚到原来的版本。

[root@master01 ~]# kubectl rollout history deployment/nginx     ‘查看历史版本,有两个版本状态’

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6jcde1WT-1589031354073)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589029658582.png)]

[root@master01 ~]# kubectl rollout undo deployment/nginx     ‘执行回滚到上一次版本’
[root@master01 ~]# kubectl rollout status deployment/nginx     ‘检查回滚状态’
[root@master01 ~]# kubectl rollout history deployment/nginx     ‘再次查看版本状态’

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NFZxwTV7-1589031354074)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589029808946.png)]

在浏览器中刷新下 查看版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pDHhf4Dq-1589031354074)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589030114673.png)]

10、删除业务
[root@master01 ~]# kubectl get deployment        ‘查看deployment资源名称’
NAME    DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
nginx   3         3         3            3           3h19m

[root@master01 ~]# kubectl delete deployment/nginx     ‘删除nginx项目的deployment资源’
deployment.extensions "nginx" deleted
[root@master01 ~]# kubectl get deployment
No resources found.       ‘删除完成’


[root@master01 ~]# kubectl get svc      ‘查看service资源名称’
NAME            TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
kubernetes      ClusterIP   10.0.0.1     <none>        443/TCP        22h
nginx-service   NodePort    10.0.0.100   <none>        80:46971/TCP   3h12m
[root@master01 ~]# kubectl delete svc/nginx-service      ‘删除nginx项目的service资源’
service "nginx-service" deleted

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EdY6NWhr-1589031354075)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589030639237.png)]

11、查看具体资源的详细信息
[root@master01 ~]# kubectl run nginx --image=nginx:latest --port=80 --replicas=3
[root@master01 ~]# kubectl get pods
[root@master01 ~]# kubectl describe pod nginx-7697996758-l8xnw

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zbAGjyqZ-1589031354076)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1589031017224.png)]

12、查看deployment资源
[root@master01 ~]# kubectl describe deployment/nginx
13、进入pod
[root@master01 ~]# kubectl exec -it nginx-7697996758-p7c7h bash
root@nginx-7697996758-p7c7h:/#

AGjyqZ-1589031354076)]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章