十一、k8s安全机制

server/2025/2/28 13:13:34/

k8s作为一个分布式的微服务管理系统,保证集群安全是一个非常重要的任务,

核心-----------api-server

我们围绕集群权限的设置,其实就是设置api-server权限。

围绕api-server的权限机制,分为三个步骤:

1、认证-----------server-account

1)、token,api-server私钥签名的字符串列号,用于访问api-server,server端的认证

2)、ca.crt:ca根证书,用于客户端验证api-server发送的证书

3)、namespace:api-server办法的token来使用指定的命名空间。

认证只是确认双方的通信是可信的,在此基础之上建立通信的连接。

2、鉴权

确定请求方对集群的资源的权限。

RBAC:基于角色的访问控制

k8s1.6之后,默认的鉴权方式

对集群中的资源(pod,deployment,service)和非资源(元信息和资源状态)都可以进行完整的覆盖,权限在运行的时候调整,无需重启api-server。

鉴权的主体:

(1)角色:

ROLE:授权指定命名空间的资源控制权限

ClusterRole:可以对所有命名空间的资源的控制权

(2)角色绑定:

RoleBinding:把角色绑定到主体(命名空间)

ClusterRoleBinding:将集群角色绑定到主体(所有命名空间)

(3)主体的对象:

user:用户

group 用户组
serviceAccount:服务账号
namespace 命名空间


3、准入控制

每一个对于api-server的请求都会有一个准入控制器插件的列表,发送到api-server的请求经过准入控制器插件的检查,检查不通过,请求会被拒绝

官方自带请求控制器:

LimitRanger

resourceQuota

namespaceLifecycle:命名空间的回收机制

创建一个用户,访问指定的命名空间,权限的设置和修改

操作步骤

创建用户,指定密码

设置证书   把三个证书放到这个目录下

给证书权限

创建用户认证的证书

给证书签发密钥

认证

鉴权

k8s重点

1、组件功能api-server

kube-controlllmer-manger 控制器

kube-scheduler 调度器

etcd k8s的数据库,只有api-server可以读写

kube-proxy 节点组件,网络代理,又来自动发现部署的服务(pod),以及把流量分发到指定的pod

网络插件-cni

flannel

calico

kubelet:节点管理器

2、kubectl 常用的命令

kubectl get namespace ns 创建命名空间

kubectl create deployment

kubectl run ----创建pod

rollout history回滚

3、service的类型:

clusterip 默认类型--只能在内部使用,集群内部使用

NodePort  30000-32767

loadBalancer  ----内网可以直接访问

loadBalancer

externalName

ingress-----可以处理url请求,对域名可以访问

4、控制器的类型:

deployment

daemonset

statfulset

job

cronjob

5、pod的状态和探针*

启动探针

存活探针

就绪探针

exec

topsocket

httpGet

pending的状态该如何解决?

cacshloopback

pod的重启策略

镜像的拉取策略

6、调度:

亲和性和反亲和性

node有亲和性

pod有亲和和反亲和

污点,容忍

7、配置管理:

secret

configmap*-------如何把配置文件传给pod。configmap的热更新

8、HPA:自动扩缩容

对pod的数量自动增减

一定要有资源限制

limit:

cpu:

menory:

9、数据卷:

emptyDir{}:pod内容器的共享数据

hostPath:pod所在的节点生成一个挂载,每个pod的数据卷是独立的

nfs:所有的pod共享一个目录使用的数据是一致的

pv和pvc:发起一个pvc的请求,使用pv的挂载资源

动态和静态

10、权限控制:

11、普罗米修斯监控


http://www.ppmy.cn/server/171299.html

相关文章

如何通过JS实现关闭网页时清空该页面在本地电脑的缓存存储?

要通过JavaScript实现关闭网页时清空该页面在本地电脑的缓存存储,可以采用以下方法: 使用window.onbeforeunload事件监听器: 在Vue.js应用中,可以在App.vue组件的mounted生命周期钩子中监听window.onbeforeunload事件&#xff0c…

Python连接SQL SEVER数据库全流程

背景介绍 在数据分析领域,经常需要从数据库中获取数据进行分析和处理。而SQL Server是一种常用的关系型数据库管理系统,因此学习如何使用Python连接SQL Server数据库并获取数据是非常有用的。 以下是Python使用pymssql连接SQL Server数据库的全流程&a…

【FL0086】基于SSM和微信小程序的垃圾分类小程序

🧑‍💻博主介绍🧑‍💻 全网粉丝10W,CSDN全栈领域优质创作者,博客之星、掘金/知乎/b站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战,以及程序定制化开发…

在PyTorch使用UNet进行图像分割【附源码】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

【01游戏——DFS】

题目 代码 #include <bits/stdc.h> using namespace std;const int N 11;int n; char g[N][N]; char ng[N][N]; bool Find false;bool check(int x, int y) //只用查最新的坐标相关的数据 {//连续长度不能超过2if(x - 2 > 1 && ng[x][y] ng[x-1][y] &…

react native和react、H5的区别

React Native、React 和 H5 是三种不同的技术栈&#xff0c;它们之间有很多相似之处&#xff0c;但也有很多关键的区别。下面是它们的主要区别&#xff1a; 1. React • 定义&#xff1a;React 是一个用于构建用户界面的 JavaScript 库&#xff0c;专注于构建 UI 组件。它允许…

OSI七层模型和TCP/IP四层模型形象实例

本章是对上一章《OSI七层模型和TCP/IP四层模型介绍》内容的形象实例说明&#xff0c;应该可以帮助记忆。 目录 1、OSI七层模型实例 1.1、应用层&#xff08;Application Layer&#xff09; 1.2、表示层&#xff08;Presentation Layer&#xff09; 1.3、会话层&#xff08…

python里面的numpy

NumPy&#xff08;Numerical Python&#xff09;是 Python 中用于科学计算的基础库&#xff0c;它提供了高性能的多维数组对象&#xff08;ndarray&#xff09;以及处理这些数组的各种工具。以下是对 NumPy 常见用法的详细讲解&#xff1a; 1. 安装与导入 在使用 NumPy 之前&…