一、Nodes
一个Pod总是在一个(Node)节点上运行,Node是Kubernetes中的工作节点,可以是虚拟机或物理机。每个Node由 Master管理,Node上可以有多个pod,Kubernetes Master会自动处理群集中Node的pod调度,同时Master的自动调度会考虑每个Node上的可用资源。
每个Kubernetes Node上至少运行着:
Kubelet,管理Kubernetes Master和Node之间的通信; 管理机器上运行的Pods和containers容器。
container runtime(如Docker,rkt)。
1、获取cluster中所有的nodes展示
kubectl get nodes
2、kubectl describe node
获取所有node信息
kubectl describe node <node name>
获取单个node信息
如:kubectl describe node cn-hangzhou.i-bp12oivb2duhh8jk1ohj
二、Namespace
Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间。
1、获取所有的namespace
kubectl get namespace
可以简写成:kubectl get ns
2、获取具体某个namespace里的pods
kubectl get pods --namespace dev
或简写成:kubectl get po -n dev
3、获取某个命名空间内具体pods
比如:kubectl get pods alipay-5c57d446f-gngrd -n dev
三、Pods
Kubernetes Pod:
是Kubernetes中一个抽象化概念,由一个或多个容器组合在一起得共享资源。这些资源包括:共享存储,如 Volumes 卷网络,唯一的集群IP地址每个容器运,行的信息,例如:容器镜像版本
Pod是Kubernetes中的最小单位
1、查看某一个namespace的pods,上一个里面有:kubectl get pods -n dev
2、进入pods:
kubectl exec -i -t <pod name> /bin/bash -n dev
暂时无演示图片,k8s是alias写的脚本
3、查看log
cd log
tail -f production.log
base.log 出错和错误信息
Production.log 正常的rails输出,请求路由,sql执行
主要查看这两个log帮开发debug错误原因,提升工作效率
4、获取pod的信息详情
kubectl describe pod leads-app-657f47647b-qpb6x -n dev
可以看到在哪个节点上(IP地址)----跳板机
查看pods的log
kubectl logs -f leads-app-mq-57cb48c8c-xdkzn -n dev
⚠️:演示期间一直在重启,可能会出现问不对图的情况
一些常用的k8s alias
alias k8s='function _a(){ NAME=$(kubectl get pods -n dev | grep ^$1 | awk "NR==1{print \$1}"); kubectl exec -it $NAME /bin/bash -n dev; }; _a'
alias k8sdel='function _a(){ NAME=$(kubectl get pods -n dev | grep ^$1 | awk "NR==1{print \$1}"); kubectl delete pods $NAME -n dev; }; _a'
alias k8sfind='function _a(){ NAME=$(kubectl get pods -n dev | grep ^$1 | awk "NR==1{print \$1}"); kubectl describe pods $NAME -n dev |grep Node |head -n 1|awk "{print $2}"|awk -F "/" "{print $2}"; }; _a'
alias k8shelp='/bin/bash /opt/script/k8shelp.sh'
alias k8slist='function _a(){ kubectl get pods -n dev | grep ^$1 ; }; _a'
alias k8slog='function _a(){ NAME=$(kubectl get pods -n dev | grep ^$1 | awk "NR==1{print \$1}"); kubectl logs -f $NAME --tail=1000 -n dev; }; _a'