We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
k8s APIServer 负责对外提供 k8s API 服务,它运行在 k8s 的 master 节点上。
作为系统管理指令的统一入口,APIServer 担负着统揽全局的重任,任何对资源进行增删改查的操作都需要交给 APIServer处理后才能提交给 etcd。
APIServer 启动过程中进行了3个初始化操作,创建了3个对象:认证,授权和多维资源管理。
所以访问 k8s 集群资源需要过三关:认证,鉴权,多维资源管理
安全级别高
kubectl --server=https://192.168.99.100:8443 --certificate-authority=ca.crt --client-key=client.key --client-certificate=client.crt get nodes
安全级别中
kubectl --token
Authorization: Bearer ${token}
kubectl --server=https://192.168.99.100:8443 --token=xxx --insecure-skip-tls-verify=true get nodes
curl -k --header "Authorization: Bearer xxx" https://192.168.99.100:8443/api
安全级别低,不建议在生产环境中使用
kubectl --username --passwrod
Authorization: Basic BASE64ENCODED(USER:PASSWORD)
kubectl --server=https://192.168.99.100:8443 --username=admin --password=1234 --insecure-skip-tls-verify=true get nodes
curl -k --header "Authorization: Basic YWRtaW46MTIzNAo=" https://192.168.99.100:8443/api
用户认证后,对指定的资源是否有权限访问,还需要经过授权环节。
授权主要是用于对集群资源的访问控制,通过检查请求包含的相关属性值,与相对应的访问策略相比较,API 请求必须满足某些策略才能被处理。
API Server 支持多只授权策略,通过启动参数"--authorization_mode"来设置,可以同时启用多种策略
允许通过 k8s API 动态配置策略
RBAC被映射成四种 k8s 顶级对象
角色绑定包含了一组相关主体(User, Group或者 Service Account)以及对被授予角色的引用
以下两者区别在于是否时 namespace 资源
APIServer会在用户的请求通过认证鉴权后调用 admission control,对用户请求进行进一步的审核。所以即使用户请求通过了认证鉴权,也有可能因为申请的资源超过了资源配额而被 admission control 驳回。
admission control 是一种多维度可扩展的资源管理机制,每个维度通过一个 admission control 插件实现,插件在 admission-control 中是以逗号作为分割符。
--admission-control=NamespaceLifecycle,LimitRanger,ServiceAcount,DefaultStorageClass,ResourceQuota
The text was updated successfully, but these errors were encountered:
No branches or pull requests
k8s APIServer 负责对外提供 k8s API 服务,它运行在 k8s 的 master 节点上。
作为系统管理指令的统一入口,APIServer 担负着统揽全局的重任,任何对资源进行增删改查的操作都需要交给 APIServer处理后才能提交给 etcd。
APIServer 启动过程中进行了3个初始化操作,创建了3个对象:认证,授权和多维资源管理。
所以访问 k8s 集群资源需要过三关:认证,鉴权,多维资源管理
Authentication
基于客户端证书的认证机制
安全级别高
API Server配置
Client 配置
访问示例
基于 token 的认证机制
安全级别中
API Server配置
Client 配置
kubectl --token
Authorization: Bearer ${token}
访问示例
curl -k --header "Authorization: Bearer xxx" https://192.168.99.100:8443/api
Basic 认证机制
安全级别低,不建议在生产环境中使用
API Server配置
Client 配置
kubectl --username --passwrod
Authorization: Basic BASE64ENCODED(USER:PASSWORD)
访问示例
curl -k --header "Authorization: Basic YWRtaW46MTIzNAo=" https://192.168.99.100:8443/api
Authorization
用户认证后,对指定的资源是否有权限访问,还需要经过授权环节。
授权主要是用于对集群资源的访问控制,通过检查请求包含的相关属性值,与相对应的访问策略相比较,API 请求必须满足某些策略才能被处理。
请求属性
授权策略
API Server 支持多只授权策略,通过启动参数"--authorization_mode"来设置,可以同时启用多种策略
RBAC(Role-Based Access Control)
允许通过 k8s API 动态配置策略
RBAC被映射成四种 k8s 顶级对象
角色
建立用户与角色的绑定关系
以下两者区别在于是否时 namespace 资源
Admission Control
APIServer会在用户的请求通过认证鉴权后调用 admission control,对用户请求进行进一步的审核。所以即使用户请求通过了认证鉴权,也有可能因为申请的资源超过了资源配额而被 admission control 驳回。
admission control 是一种多维度可扩展的资源管理机制,每个维度通过一个 admission control 插件实现,插件在 admission-control 中是以逗号作为分割符。
参考
The text was updated successfully, but these errors were encountered: