网站建设功能介绍,保定网站建设的过程,wordpress下载后放哪,手机做网站价格一、Pod 配置管理
可变配置用 ConfigMap#xff1b;
敏感信息用 Secret#xff1b;
身份认证用 ServiceAccount 这几个独立的资源来实现的#xff1b;
资源配置用 Resources#xff1b;
安全管控用 SecurityContext#xff1b;
前置校验用 InitContainers 这几个在 …一、Pod 配置管理
可变配置用 ConfigMap
敏感信息用 Secret
身份认证用 ServiceAccount 这几个独立的资源来实现的
资源配置用 Resources
安全管控用 SecurityContext
前置校验用 InitContainers 这几个在 spec 里面加的字段来实现的这些配置管理。 二、ConfigMap
1、介绍
ConfigMap 主要是管理可变配置信息比如配置文件环境变量或者命令行参数。
它的好处在于它可以让可变配置和容器镜像进行解耦保证了容器的可移植性。 2、创建
kubectl create configmap [NAME] [DATA]
用 kubectl 这个命令来创建它带的参数主要有两个一个是指定 name第二个是 DATA。其中 DATA 可以通过指定文件或者指定目录以及直接指定键值对。 3、使用
ConfigMap主要被Pod使用。
● 第一种是环境变量。通过 valueFrom 下的 ConfigMapKeyRef 这个字段name 指定 ConfigMap 名key 是 ConfigMap.data 里面的 key。
● 第二个是命令行参数。
● 最后一个是通过 volume 挂载的方式直接挂到容器的某一个目录下面去。 4、注意要点
① ConfigMap 文件的大小。虽然说 ConfigMap 文件没有大小限制但是在 ETCD 里面数据的写入是有大小限制的现在是限制在 1MB 以内。
② 第二个注意点是 pod 引入 ConfigMap 的时候必须是相同的 Namespace 中的 ConfigMap。
③ 第三个是 pod 引用的 ConfigMap。假如这个 ConfigMap 不存在那么这个 pod 是无法创建成功的这也表示在创建 pod 前必须先把要引用的 ConfigMap 创建好。
三、secret
1、介绍
Secret 是一个主要用来存储密码 token 等一些敏感信息的资源对象。 2、创建
有两种创建方式
① 系统创建K8s 为每一个 namespace 的默认用户default ServiceAccount创建 Secret。
② 用户手动创建 kubectl create secret generic [NAME] [DATA] [TYPE]DATA 可以指定文件/键值对TYPE 默认为Opaque。 3、使用
Secret 主要是被 pod 来使用一般是通过 volume 形式挂载到容器里指定的目录然后容器里的业务进程再到目录下读取 Secret 来进行使用。 四、ServiceAccount
Pod 创建时 Admission Controller 会根据指定的 ServiceAccount (默认为default)把对应的 Secret 挂载到容器中固定的目录下。
当 Pod 访问集群时可以默认利用 Secret 其中的 token 文件来认证 Pod 的身份。 五、Resource
1、介绍
Resource 容器资源配置管理。目前内部支持类型有三种CPU、内存以及临时存储。资源配置主要分成 request 和 limit 两种类型一个是需要的数量一个是资源的界限。CPU、内存以及临时存储都是在 container 下的 Resource 字段里进行一个声明。 2、Pod 服务质量 (QoS) 配置
根据 CPU 对容器内存资源的需求对 pod 的服务质量进行一个分类分别是 Guaranteed、Burstable 和 BestEffort。
① Guaranteed pod 里面每个容器都必须有内存和 CPU 的 request 以及 limit 的一个声明且 request 和 limit 必须是一样的这就是 Guaranteed
② BurstableBurstable 至少有一个容器存在内存和 CPU 的一个 request
③ BestEffort只要不是 Guaranteed 和 Burstable那就是 BestEffort。
六、SecurityContext
SecurityContext 主要是用于限制容器的一个行为它能保证系统和其他容器的安全。
SecurityContext 主要分为三个级别
第一个是容器级别仅对容器生效
第二个是 pod 级别对 pod 里所有容器生效
第三个是集群级别就是 PSP对集群内所有 pod 生效。 七、InitContainer
1、InitContainer 和普通 container 的区别
① InitContainer 首先会比普通 container 先启动并且直到所有的 InitContainer 执行成功后普通 container 才会被启动
② InitContainer 之间是按定义的次序去启动执行的执行成功一个之后再执行第二个而普通的 container 是并发启动的
③ InitContainer 执行成功后就结束退出而普通容器可能会一直在执行。
2、InitContainer 的用途
InitContainer 主要为普通 container 服务比如为普通 container 启动之前做一个初始化或者为它准备一些配置文件。