基于Google云原生工程师的kubernetes最佳实践(三)

目录

三、集群管理

利用node affinity、taint等机制管理node

通过pod affinity/anti-affinity机制将pod分配到合适的node

Node分级管理

从Qos角度将Pod分级

用namespace隔离不同的环境和用户

配置RBAC权限控制

1. 遵循最小权限原则

2. 使用 Role 和 ClusterRole 分离权限

3. 利用 RoleBinding 和 ClusterRoleBinding 绑定角色

 Google云原生工程师最佳实践指南下载


三、集群管理


利用node affinity、taint等机制管理node

        Kubernetes提供了节点亲和性和污点等机制,可以更好地控制Pod在节点上的分布。node affinity允许基于节点的标签属性来约束pod可以调度到哪些节点,常用于将特定工作负载分配到具有特定硬件/软件配置的节点。而taint则用于将节点标记为专用,只有配置了相应容忍度(toleration)的pod才能调度到这些专用节点上,适合用于节点隔离。利用这些机制,可以更合理高效地利用集群资源。


通过pod affinity/anti-affinity机制将pod分配到合适的node

        除了调度pod到合适的节点外,Kubernetes还支持通过pod亲和性和反亲和性规则来影响pod与pod之间的调度关系。pod亲和性可以将新pod调度到同一拓扑域(如节点、可用区等)的现有pod附近,常用于实现pod集群化部署;而pod反亲和性则防止新pod与指定pod部署在同一拓扑域,避免单点故障。合理利用这些规则,可以提高应用可靠性和局部性能。

Node分级管理

通过给 Node 打标签来对节点进行分级管理,可以根据资源类型(如 CPU、内存、GPU)或用途(如生产、测试)对节点进行分类。

从Qos角度将Pod分级

根据QoS 策略将Pod分为核心应用(Guaranteed)、重要应用(Burstable)、边缘应用(BestEffort)

QoS 策略

  • Guaranteed: 所有容器的 requests 和 limits 应相等,确保 Pod 获得预留资源。
  • Burstable: 适用于需要一定程度资源弹性的 Pod,允许 Pod 在高峰期使用更多资源。
  • BestEffort: 适合非关键任务的 Pod,无固定资源预留,最低调度优先级。


用namespace隔离不同的环境和用户


配置RBAC权限控制

        在 Kubernetes 中,基于角色的访问控制(RBAC)是一种重要的安全机制,用于限制对集群资源的访问和操作权限。正确配置 RBAC 权限不仅有助于保护集群安全,还能确保用户和应用只能访问它们所需的最少资源,遵循最小权限原则

1. 遵循最小权限原则

为用户和服务帐户分配尽可能少的权限,只授予完成任务所必需的权限。这有助于减少潜在的安全风险和错误配置,尽量不要使用default serviceaccount

2. 使用 Role 和 ClusterRole 分离权限

  • Role 用于命名空间级别的权限控制。
  • ClusterRole 用于集群范围内的资源和非资源端点的权限控制。

3. 利用 RoleBinding 和 ClusterRoleBinding 绑定角色

  • RoleBinding 将 Role 与特定的用户、组或服务帐户在命名空间级别关联起来。
  • ClusterRoleBinding 将 ClusterRole 与用户、组或服务帐户在全集群级别关联起来。

 Google云原生工程师最佳实践指南下载

Kubernetes_Best_Practices.pdficon-default.png?t=N7T8https://c74p900o8m.feishu.cn/docx/S84ddjQg2oQRpMxxOykcdP8Snsc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/564835.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

arm 外部中断

main.c: #include"key_inc.h" //封装延时函数 void delay(int ms) {int i,j;for(i0;i<ms;i){for(j0;j<2000;j){}} } int main() {//按键中断的初始化key1_it_config();key2_it_config();key3_it_config();while(1){printf("in main pro\n");delay(1…

【计算机网络】域名劫持无处遁形:基于HTTPDNS打造可靠且安全的域名解析体系

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导…

代码随想录算法训练营 第14天 part03 | 二叉树的迭代遍历

代码随想录 前序遍历&#xff08;迭代法&#xff09; 前序遍历是中左右&#xff0c;每次先处理的是中间节点&#xff0c;那么先将根节点放入栈中&#xff0c;然后将右孩子加入栈&#xff0c;再加入左孩子。 public List<Integer> preorderTraversal(TreeNode root) {Li…

人工智能之Tensorflow批标准化

批标准化&#xff08;Batch Normalization,BN&#xff09;是为了克服神经网络层数加深导致难以训练而诞生的。 随着神经网络的深度加深&#xff0c;训练会越来越困难&#xff0c;收敛速度会很慢&#xff0c;常常会导致梯度消失问题。梯度消失问题是在神经网络中&#xff0c;当前…

【Qt问题】Qt中文乱码问题解决方案(详细汇总)

【Qt问题】Qt中文乱码问题解决方案&#xff08;详细汇总&#xff09; 一、问题描述&#xff1a; 由于Qt对中文的支持不是很好&#xff0c;使用QtCreator进行开发的过程中&#xff0c;经常会出现各种乱七八糟的中文乱码问题&#xff0c;比如我前面遇到的 【Qt问题】初始化菜单…

【Node.js】zlib

gzip 和 deflate 的基本使用 const zlib require("zlib"); const fs require(fs)// 压缩 1. createGzip .gz 2. createDeflate .deflate // const readStream fs.createReadStream(index.txt) // const writeStream fs.createWriteStream(index.txt.gz) // rea…

LeetCode 面试经典150题 14.最长公共前缀

题目&#xff1a; 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 ""。 思路&#xff1a; 代码&#xff1a; class Solution {public String longestCommonPrefix(String[] strs) {if (strs.length 0) {return &…

nodejs+vue高校社团管理小程序的设计与实现python-flask-django-php

相比于以前的传统手工管理方式&#xff0c;智能化的管理方式可以大幅降低学校的运营人员成本&#xff0c;实现了高校社团管理的标准化、制度化、程序化的管理&#xff0c;有效地防止了高校社团管理的随意管理&#xff0c;提高了信息的处理速度和精确度&#xff0c;能够及时、准…

手撕算法-二叉树的层序遍历

描述 分析 层序遍历&#xff0c;需要用到队列。 代码 代码1&#xff1a;独立bfs函数 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(i…

游戏引擎中的地形系统

一、地形的几何 1.1 高度图 记录不同定点的高度&#xff0c;对每个网格/顶点应用高度、材质等信息&#xff0c;我们每个顶点可以根据高度改变位移 但是这种方法是不适用于开放世界的。很难直接画出几百万公里的场景 1.2 自适应网格细分 当fov越来越窄的时候&#xff0c;网格…

设计模式(十二):中介者模式(行为型模式)

Mediator&#xff0c;中介者模式&#xff1a;用一个中介对象封装一些列的对象交互。属于行为型模式 Facade&#xff0c;外观模式&#xff1a;为子系统中的一组接口提供一致的界面&#xff0c;facade 提供了一高层接口&#xff0c;这个接口使得子系统更容易使用。属于结构型模式…

Dynamo与Revit API之间的转换

今天来聊聊 Dynamo 与 Revit 之间图元转换的基础知识&#xff0c;这些需要你牢牢记住哦&#xff0c;不然在 Python script 中写代码&#xff0c;经常会报错的~ 通常来讲&#xff0c;所有来自 Dynamo 节点的几何图形都不是 Revit 的几何对象&#xff0c;所以它们需要与 Revit AP…