15 | 深入解析Pod对象(二):使用进阶
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了Kubernetes中Pod对象的高级使用方法,重点讨论了Projected Volume的概念及其在容器中提供预定义数据的应用。通过详细讲解如何将加密数据存放到Etcd中,并在Pod的容器中挂载Volume的方式访问这些数据,读者可以深入了解Pod对象的高级特性。此外,文章还涉及了ConfigMap、Downward API和Service Account的使用方法,以及容器健康检查和恢复机制的定义。整体而言,本文通过实例详细介绍了Projected Volume的使用方法,为读者提供了深入了解Pod对象高阶使用的指导。对于想要深入了解Kubernetes的读者具有很高的参考价值。
《深入剖析 Kubernetes》,新⼈⾸单¥68
全部留言(110)
- 最新
- 精选
- 我来也在使用PodPreset对象时,发现并未生效,最终才知道是因为当初安装时未启用 Pod Preset.然后参考[https://kubernetes.io/docs/concepts/workloads/pods/podpreset/#enable-pod-preset] 修改 [/etc/kubernetes/manifests/kube-apiserver.yaml] 中的spec.containers.command: 修改原[ - --runtime-config=api/all=true]为[- --runtime-config=api/all=true,settings.k8s.io/v1alpha1=true], 新加一行[- --enable-admission-plugins=PodPreset] 可以等自动生效也可以强制重启[systemctl restart kubelet]. 然后再重新创建,就可以在pod中看见spec.containers.env.name:DB_PORT等信息了.
作者回复: 对。新特性需要先启用。
2018-09-271545 - 北卡我记得deployment所创建的pod restart策略只支持aways。是我使用的版本太低了吗?
作者回复: deployment确实是这么要求的啊。不过你可以想想为什么。
2018-09-27622 - snakorseprobe的原理是通过sidecar容器来实现的吗
作者回复: 不是的,exec
2018-09-2618 - 章宇军“需要注意的是,Secret 对象要求这些数据必须是经过 Base64 转码的,以免出现明文密码的安全隐患。” base64 等同于明文吧……我理解是主要是为了 binary 类型的数据。
作者回复: 没错。Secret里要保存的东西很可能是一个文件,所以它的类型是map[string][]byte。但从设计的角度来说,Secret也需要避免用户把credential string直接写在yaml里。
2018-10-20213 - 寞月老师好,probe我们在生产实际应用中,有个问题。就是,每次新部署的时候,旧容器要做graceful delete,这个会触发kubelet的delete逻辑。 只有在容器被kill以后,k8s才会remove 这个探针。即,容器已经收到kill信号在停服务了,但是探针还在检测于是一直报错。 不知道有没有配置可解决这个问题。
作者回复: 嗯,代码实现目前就是这样的。有具体的影响吗?除了报错比较多之外。
2018-10-19211 - 龙坤老师你好,有句话不太明白 原文:“相信你一定有过这样的想法:我现在有了一个 Pod,我能不能在这个 Pod 里安装一个 Kubernetes 的Client,这样就可以从容器里直接访问并且操作这个 Kubernetes 的 API 了呢?” 1. 这里可以举个简单例子吗? 2.“kubernetes的client”指的是什么? 3. 操作“kubernetes的API”这里的API由指什么? 小白问题,过不了这关,听得有点晕。见谅
作者回复: client library,kubernetes 对外暴露的api
2018-09-2749 - Pixar复习了下容器的检查探针, 有几个点还是没太明白, 还望老师能解答下: 1. restartPolicy : 这个restartPolicy是重启的Pod的Container, 那么重启的时机是根据Container结束时返回的状态码吗? 2. restart 和 probe的关系: Pod某个容器的livenessProbe 返回fail, 这个时候Container并没有结束, 只是状态检查是失败的, 那为什么Container也会重启呢? 这个重启动作是谁发起的呢? 3. readnessProbe: 如果某个Pod含多个Container, 且每个都有readnessProbe, 那是不是说只有全部Container的Probe返回success, 该Pod才会是 readness呢?
作者回复: 很简单。restart policy 要尊重 liveness probe
2018-12-0227 - 微思在讲述livenessProbe的时候说到:虽然是 Restart(重启),但实际却是重新创建了容器;那之前那个还在运行的liveness容器被自动销毁了吗?
作者回复: 对
2018-09-267 - 我来也文章中的代码 dapi-volume.yaml 格式不对,被取消了缩进,导致直接贴出来使用会报错. 还有按文章中的命令 kubectl create secret generic user --from-file=./username.txt ,在pod中[ kubectl exec -it test-projected-volume -- /bin/sh]展示的目录不是user,而是username.txt. 可以通过[kubectl edit secrets user]手动修改data:下的字段名.
作者回复: 请仔细看,我在文稿列出来的exec的输出,是第二种方法、也就是写YAML文件方法创建的Secret。而你列出来的是第一种方法创建的Secret。他俩本来就是不一样的。
2018-09-2624 - 风行传说老师,我想问一下,您文章里面讲到的pod.spec.volumes.projected.sources下的这四种对象中的configMap secret 和pod.spec.volumes下的configMap secret是否有区别,如果没有区别那为何相同的功能对象要设置在两个不同的对象下面呢?这点让我不是特别理解,希望您能给予一下解答,谢谢!
作者回复: 很简单啦。projected volume 是新api,四个定义在一起。后者是老api,分开的。以后尽量用新api。
2018-09-2624