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

目录

三、集群管理

[利用node affinity、taint等机制管理node](#利用node affinity、taint等机制管理node)

[通过pod affinity/anti-affinity机制将pod分配到合适的node](#通过pod affinity/anti-affinity机制将pod分配到合适的node)

Node分级管理

从Qos角度将Pod分级

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

配置RBAC权限控制

[1. 遵循最小权限原则](#1. 遵循最小权限原则)

[2. 使用 Role 和 ClusterRole 分离权限](#2. 使用 Role 和 ClusterRole 分离权限)

[3. 利用 RoleBinding 和 ClusterRoleBinding 绑定角色](#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.pdfhttps://c74p900o8m.feishu.cn/docx/S84ddjQg2oQRpMxxOykcdP8Snsc

相关推荐
IT成长日记2 分钟前
【Docker基础】Docker数据卷管理:docker volume prune及其参数详解
运维·docker·容器·volume·prune
这儿有一堆花8 分钟前
Docker编译环境搭建与开发实战指南
运维·docker·容器
LuckyLay9 分钟前
Compose 高级用法详解——AI教你学Docker
运维·docker·容器
Uluoyu17 分钟前
redisSearch docker安装
运维·redis·docker·容器
IT成长日记4 小时前
【Docker基础】Docker数据持久化与卷(Volume)介绍
运维·docker·容器·数据持久化·volume·
疯子的模样9 小时前
Docker 安装 Neo4j 保姆级教程
docker·容器·neo4j
虚伪的空想家9 小时前
rook-ceph配置dashboard代理无法访问
ceph·云原生·k8s·存储·rook
庸子12 小时前
基于Jenkins和Kubernetes构建DevOps自动化运维管理平台
运维·kubernetes·jenkins
Lpy256912 小时前
Docker Desktop 安装到D盘(包括镜像下载等)+ 汉化
运维·docker·容器
好奇的菜鸟13 小时前
Docker 配置项详解与示例
运维·docker·容器