首页 > 其他 > 详细

k8s操作

时间:2021-05-11 22:00:46      阅读:33      评论:0      收藏:0      [点我收藏+]

Kubernetes集群搭建完成后会伴随着对其编排的困扰,现针对kubectl 的操作做一些总结(有待完善)

kubectl命令的使用方法:

kubectl --help

kubectl <command> --help

kubectl 配置位于 ~/.kube/config

常用命令:

查看:kubectl get --help

kubectl cluster-info (查看 k8s 集群状态)

kubectl get nodes (查看集群内的 node 节点信息)

kubectl get pods (查看运行的 pods )

kubectl get pods -o wide (查看 pods 详情)

kubectl get deployment (查看运行的 deployment )

kubectl get deployment -o wide (查看 deployment 详情)

kubectl get svc (查看 service )

kubectl get svc -o wide (查看 service 详情)

kubectl get ns (获取所有命名空间)

kubectl get all -o wide --all-namespaces (查看所有命名空间下的所有信息)

kubectl get all -n default (查看指定命名空间下所有服务信息,其中 default 为命名空间的名称)

kubectl get pods -n default (指定命名空间下获取某种类型对象的所有信息,default 为命名空间名称)

kubectl get daemonset --all-namespaces (查看所有 namespace 下的 daemonset ,其中DaemonSet kube-flannel-ds和kube-proxy分别负责在每个节点上运
行flannel和kube-proxy组件,因为flannel和kube-proxy属于系统组件,需要在命令行中通过--
namespace=kube-system指定namespace kube-system。若不指定,则只
返回默认namespace default中的资源)

kubectl get ingress (查看集群中的 ingress )

kubectl get pods -A -o wide | grep nodeip (查看一台 node 主机上的所有 pod 资源)

 

 

标签:label (kubectl label --help)

kubectl label node nodename key=value (给 node 节点添加一个 label )

kubectl get node --show-labels (查看节点的 label )

kubectl label node nodename key- (将 node 节点的 label 删除 )

 

日志:logs

kubectl logs -f pod-name (查看容器中输出的日志)

kubectl logs -f podname -c containername (跟踪查看pod内某个容器的日志,相当于tail -f 或 docker logs -f )

kubectl  exec  pod-name    cmd: ---在podname中执行cmd命令,该命令用 ‘‘ ;
kubectl  exec  pod-name  -c    containername  命令: ---在podname中的容器containername中执行命令;
 kubectl exec -it   common-1-controller-786c6c76dd-lqzc8  -c  common-0     /bin/sh   -n ns-2      进入pod common-1-controller-786c6c76dd-lqzc8内的容器common-0中,执行一些命令;
/ # date
Fri Sep 28 15:01:12 CST 2018
/ # 

 kubectl describe pods php-p-6c6965c645-bhz6b -n default (查看 pods 中的容器)

查看资源使用情况: kubectl top --help/kubectl describe --help

kubectl top node (查看节点的资源使用情况)

kubectl top pod (查看pod 的资源使用情况)

kubectl api-resources (获取API的资源)

kubectl api-version (查看 API 版本信息)

kubectl describe nodes (查看所有 node 的资源)

=======================================

负载均衡处理组件,例如ingress
外部通过ingress访问http请求url后面的服务;ingress controller是以pod的形式存在的;

逻辑:

1、监听apiserver,获取全部ingress的定义

2、基于ingress的定义,生成nginx需要的配置文件/etc/nginx/nginx.conf

3、nginx -s reload 命令,重新加载nginx.conf配置文件的内容

nginx-ingress-controller镜像来创建ingress controller,该ingress controller是以daemonset的形式进行创建,在每个node上都将启动一个nginx服务。

查看ingress的镜像文件:

docker images |grep ingress

docker pull quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.27.1

灰度升级时,新建deployment之后,会新建一个replicaset控制副本数。deployment实际是replica controller的升级版:

=========================================

灰度升级
查看升级过程中deployment的更新过程

kubectl rollout status  deployment/deploy-tsing-canary  -n ns-tsing 

deployment "deploy-tsing-canary" successfully rolled out

可以编辑deployment的镜像版本,引起升级:

kubectl edit   deployment/deploy-tsing-canary  -n ns-tsing 

检查整个deployment部署的历史记录:

kubectl rollout history deployment/deploy-tsing-canary  -n ns-tsing

撤销本次发布回滚到上一个部署版本:
kubectl rollout undo deployment/deploy-tsing-canary  -n ns-tsing

暂停deployment的更新:

kubectl rollout pause deployment/deploy-tsing-canary  -n ns-tsing

 

在新建deployment后,最好加上—record,在查看history时能看到历史记录。

--version,能看到更新的每个版本。

查看命令的子命令方法:

kubectl rollout 

Available Commands:

  history     View rollout history

  pause       Mark the provided resource as paused

  restart     Restart a resource

  resume      Resume a paused resource

  status      Show the status of the rollout

  undo        Undo a previous rollout

 

获取endpoints=popip+contaninerport

 kubectl get endpoints -n ns-tsing 

 

k8s操作

原文:https://www.cnblogs.com/muyi-yang/p/14756620.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!