作用: 加密数据在etcd里面,让pod容器以挂载Volume方式进行访问
场景:凭证
yamlapiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
username: ****
password: ******
shellkubectl create -f secret.yaml
kubctl exec -it mypod bash # 进入mypod
kubectl delete -f secret-val.yml kubectl apply -f secret-vol.yaml
作用:存储不加密的数据到etcd中,让pod以变量或者Volume挂载到容器中
场景:配置文件
shell# 删掉所有的pod的内容
kubectl delete Pod --all
vim redis.properties
加入以下图片的内容:
shellkubectl create configmap redis-config --from-file=redis.properties
# 查看
kubectl get cm
访问k8s集群时候,需要经过三个步骤完成具体操作
第一步: 认证 第二步:鉴权(授权) 第三步:准入控制:人具体能不能找到
进行访问时候,过程都需要经过api servier,api server 做统一协调,比如门卫。
访问过程中需要证书、token、或者用户名+密码
如果访问pod,需要serviceAccount
传输安全 : 对外不暴露8080 端口,只能内部访问,对外使用端口6443
认证
客户端身份认证常用方式:
角色: - role:特定命名空间的访问权限 - ClusterRole:所有命名空间访问权限 角色绑定: - roleBinding:角色绑定到主体 - ClusterRoleBinding:集群角色绑定到主体 主体: - user:用户 - group:用户组 - serviceAccount:服务账号
步骤:
shellkuectl run nginx --image=nginx -n roledemo
yamlkind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: roledemo
name: prod-reader
rules:
apiGroups: [""] # ""indicates the core API Group
resources: ['pods']
verbs: ['get','watch','list']
查看
就是准入控制器的列表,如果列表有请求内容,通过,没有拒绝。
本文作者:Eric
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!