编辑
2023-07-31
🚀运维部署
00
请注意,本文编写于 689 天前,最后修改于 225 天前,其中某些信息可能已经过时。

目录

1. secret
1、创建secret加密数据
2、以变量形式挂载到pod容器中
3. 以Volume形式挂载到pod容器中
2. configMap
1.建立配置文件
2. 创建ConfigMap
3. 以Volume挂载到pod容器中
4. 以变量形式挂载到pod容器中
3. 集群安全机制
3.1 概述
3.2 第一步:认证 传输安全
3.3 第二步:鉴权(授权)
3.4 准入控制

1. secret

作用: 加密数据在etcd里面,让pod容器以挂载Volume方式进行访问

场景:凭证

image.png

1、创建secret加密数据

yaml
apiVersion: v1 kind: Secret metadata: name: mysecret type: Opaque data: username: **** password: ******

image.png

shell
kubectl create -f secret.yaml

2、以变量形式挂载到pod容器中

image.png

kubctl exec -it mypod bash # 进入mypod

image.png

3. 以Volume形式挂载到pod容器中

image.png

kubectl delete -f secret-val.yml kubectl apply -f secret-vol.yaml

image.png

2. configMap

作用:存储不加密的数据到etcd中,让pod以变量或者Volume挂载到容器中

场景:配置文件

1.建立配置文件

shell
# 删掉所有的pod的内容 kubectl delete Pod --all vim redis.properties

加入以下图片的内容:

image.png

2. 创建ConfigMap

shell
kubectl create configmap redis-config --from-file=redis.properties # 查看 kubectl get cm

image.png

3. 以Volume挂载到pod容器中

image.png

4. 以变量形式挂载到pod容器中

  1. 创建yaml,声明变量信息 configmap创建
  2. 以变量挂载

image.png

image.png

3. 集群安全机制

3.1 概述

  1. 访问k8s集群时候,需要经过三个步骤完成具体操作

    第一步: 认证 第二步:鉴权(授权) 第三步:准入控制:人具体能不能找到

  2. 进行访问时候,过程都需要经过api servier,api server 做统一协调,比如门卫。

    访问过程中需要证书、token、或者用户名+密码

    如果访问pod,需要serviceAccount

image.png

3.2 第一步:认证 传输安全

  • 传输安全 : 对外不暴露8080 端口,只能内部访问,对外使用端口6443

  • 认证

    客户端身份认证常用方式:

    1. https证书认证,基于ca证书
    2. http token认证,通过token识别用户
    3. http基本认证,用户名+密码认证

3.3 第二步:鉴权(授权)

  • 基于RBAC鉴权操作
角色: - role:特定命名空间的访问权限 - ClusterRole:所有命名空间访问权限 角色绑定: - roleBinding:角色绑定到主体 - ClusterRoleBinding:集群角色绑定到主体 主体: - user:用户 - group:用户组 - serviceAccount:服务账号

步骤:

  1. 创建命名空间

image.png

  1. 在新创建的命名空间创建pod
shell
kuectl run nginx --image=nginx -n roledemo
  1. 创建角色
yaml
kind: 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']

image.png

  1. 创建角色绑定

image.png

  1. 使用证书识别身份

image.png

查看

image.png

3.4 准入控制

  • 就是准入控制器的列表,如果列表有请求内容,通过,没有拒绝。

本文作者:Eric

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!