返回总目录页

k8s相关

 

1、 

在Kubernetes中,命名空间有四种状态,分别是:

  1. Active:这是命名空间的主要状态,表示它正在被使用并且可以接受新资源。
  2. Terminating:这个状态表示命名空间正在被删除,当命名空间下的所有资源都被清理完毕后,该命名空间就会被自动删除。
  3. Failed:这个状态表示命名空间在创建过程中失败了,可能是因为某些资源不可用或者不符合某些条件。
  4. Unknown:这个状态表示Kubernetes无法获取命名空间的当前状态信息。

这些状态可以帮助管理员更好地了解命名空间的状态和健康状况,从而更好地管理Kubernetes集群中的资源。

 
2、

看k8s还有多少资源可以用


limits的超分配
一般设置个100m 300m 500m 就行
满了pod 就是pending

 

这个requests只是告诉调度器一个大概的资源占用,超了就不在把pod 调度过来,多少都行,都是预留的,实际使用不超过limit.世民说的,实际使用的就是 top pod name 那个命令。说资源不够用是这个90%以上了。通过调小requests来继续使用资源。此时,其实宿主机的cpu,内存还是很多的。

 

kubectl describe node name

Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests    Limits
  --------           --------    ------
  cpu                932m (7%)   3370m (28%)
  memory             600Mi (0%)  3294Mi (5%)
  ephemeral-storage  0 (0%)      0 (0%)
  hugepages-1Gi      0 (0%)      0 (0%)
  hugepages-2Mi      0 (0%)      0 (0%)

 

 

 3、限速

 

scp  rsync 限速 。mv不能限速。如果是上传到bucket,那么流量峰值会比较高,占用很大带宽,防止备份占用过多网络io,为了防止影响其它服务以及成本控制,需要限速。这里是cosfs挂载目录,然后mv到目录里面的。限速之后再看情况吧

 

mv 命令本身并不提供直接限速的功能。它是用于在 Unix 和类 Unix 系统上移动或重命名文件和目录的命令。

如果你想要在移动文件时限制速度,可以考虑使用其他工具或方法。以下是一些可能的方法:

  1. 使用 rsync 命令:rsync 是一个用于同步文件和目录的工具,它提供了 --bwlimit 选项来限制传输速度。你可以使用 rsync 命令的替代方案来模拟 mv 的行为,例如:

bash复制代码
  rsync -av --bwlimit=100 source_file target_directory/source_file

上述命令将把 source_file 移动到 target_directory,并限制传输速度为 100 字节/秒。
2. 使用 pv 命令:pv 是一个小工具,可以显示进度条和限速功能。你可以使用 pv 来包装 mv 命令,例如:

bash复制代码
  pv source_file > target_directory/source_file && rm source_file

上述命令将使用 pv 显示进度条和限速功能,然后将文件移动到目标目录,并删除原始文件。

请注意,这些方法都不是直接使用 mv 命令来实现限速的,而是通过其他工具来实现类似的效果。

 

 4、k8s 获取所有容器的镜像

要获取Kubernetes中所有容器的镜像,可以使用以下命令:

shell复制代码
  kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}"

这个命令使用了kubectl get pods来获取所有命名空间下的所有Pod,然后使用-o jsonpath参数来格式化输出,以仅包含容器镜像名称。

注意,这个命令返回的是容器镜像名称,而不是完整的镜像ID或标签。如果您需要完整的镜像ID或标签,请考虑使用其他工具或方法来获取这些信息。

另外,请注意,如果您只是想要获取某个特定Pod的容器镜像信息,可以使用以下命令:

shell复制代码
  kubectl get pod <pod-name> -o jsonpath="{.spec.containers[*].image}"

<pod-name>替换为您要查询的Pod的名称。

 
5、架构相关:
 
一种方式:nginx 后面是haproxy ,再后面是两套k8s集群,不过每个k8s集群都是单master节点的。用haproxy代理的两个k8s集群的ingress。
 
 
 6、 ingress配置参考
 
ingress:
  metadata:
    annotations:
      kubernetes.io/ingress.class: nginx
      nginx.ingress.kubernetes.io/proxy-body-size: 5120m
      nginx.ingress.kubernetes.io/proxy-connect-timeout: '60'
      nginx.ingress.kubernetes.io/proxy-read-timeout: '60'
      nginx.ingress.kubernetes.io/proxy-send-timeout: '60'
      nginx.ingress.kubernetes.io/service-weight: ''
      nginx.ingress.kubernetes.io/enable-cors: "true"
  
  spec:
    rules:
      - host: 

 

7、

k8s node状态 SchedulingDisabled

 

在Kubernetes(通常简称为K8s)中,节点(Node)的状态为SchedulingDisabled表示该节点已被标记为不可调度状态。这通常是由于管理员执行了某些操作,如使用kubectl cordon命令,将节点从集群的调度中暂时隔离出来。

当节点处于SchedulingDisabled状态时,Kubernetes将不会在该节点上调度新的Pod。这可以用于维护、升级或其他需要暂时将节点从集群中移除的场景。

要恢复节点的可调度状态,可以使用kubectl uncordon命令。例如,如果要将名为node-1的节点重新标记为可调度状态,可以执行以下命令:

bash复制代码
  kubectl uncordon node-1

这将使节点node-1重新变为可调度状态,Kubernetes将再次考虑在该节点上调度新的Pod。

请注意,在将节点标记为SchedulingDisabled或恢复其可调度状态之前,请确保您已了解这些操作对集群和正在运行的Pod的影响。在某些情况下,将节点从调度中隔离可能会导致正在运行的Pod出现问题或中断。因此,在执行这些操作之前,请务必仔细规划并评估潜在的风险。

 

 

 

 

 

posted @ 2023-11-04 12:07  马昌伟  阅读(8)  评论(0编辑  收藏  举报
博主链接地址:https://www.cnblogs.com/machangwei-8/