2021-04-24周六
k8s Secret
作用:加密数据存在etcd里面,让Pod容器以挂载Volume方式进行访问
场景:凭证
基于base64编码
echo -n 'admin' | base64
1.创建secret加密数据
kubectl create -f secrect.yaml
kubectl get secrect
2.以变量形式挂载到pod中
看别人博客吧 valueFrom
secretKeyRef
以volume的形式挂载pod容器中
volumeMounts
。。。
volume
secretName:mysecret
kubesphere-system 下的 ks-installer pod 里
配置管理configmap
作用存储不加密数据到etcd中,让pod以变量或者volume挂载到容器中
场景:配置文件
创建配置文件:
eg:
kubectl create configmap redis-config --from-file=redis-properties
kubectl get cm
cm=configmap
kubectl describe cm redis-config
kubectl logs mypod
以变量形式挂载
任务:
1.查看pod日志
kubectl logs pods/ks-installer-777b895fdb-xlbq6 --namespace="kubesphere-system"
2.查看yaml
kubectl describe pods/ks-installer-777b895fdb-xlbq6 --namespace="kubesphere-system"
看的这篇文章Kubernetes常用命令https://www.jianshu.com/p/2ded3a8cc788
集群的安全机制
概述:访问k8集群时,需要经过3个步骤
第一步:认证
第二步:鉴权(授权)
第三步:准入控制
进行访问时候,过程都需要经过apiserver
apiserver做统一协调,比如门卫
访问过程中需要证书、token、或者用户名+密码
如果访问pod,需要serviceAccount
第一步认证:传输安全:对外不暴露8080端口,只能内部访问,对外使用端口6443
认证:客户端身份认证常用方式
https证书认证,基于ca证书
http token认证,通过token识别用户
http基本认证,用户名+密码认证
第二步鉴权(授权)
基于RBAC鉴权
rbac基于角色的访问控制
第三步:准入控制
就是准入控制器的列表,如果列表有请求内容,通过,没有就拒绝
RBAC
基于角色的访问控制
角色绑定
角色
:role :特定命名空间访问权限
clusterrole:所有命名空间访问权限
角色绑定:
roleBinding:角色绑定到主体
ClusterRoleBinding:集群角色绑定到主体
主体:
user:用户
group:用户组
serviceAcount:服务账号
创建命名空间
kubectl create ns roledemo
在新创建的命名空间创建pod
kubectl run nginx --image=nginx -n roledemo