在Kubernetes中使用StatefulSets和Jobs运行数据密集型应用
1. 使用StatefulSets中的初始化容器引导Pod
Kubernetes API由其他对象组成对象,StatefulSet定义中的Pod模板与Deployment模板和裸Pod定义中的对象类型相同。这意味着即使Pod本身的管理方式不同,StatefulSet也可以使用所有Pod功能。初始化容器是集群应用中复杂初始化步骤的理想工具。
以下是Postgres部署更新的第一个初始化容器示例:
initContainers:
- name: wait-service
image: kiamol/ch03-sleep
envFrom: # env file for sharing between containers
- configMapRef:
name: todo-db-env
command: ['/scripts/wait-service.sh']
volumeMounts:
- name: scripts # Volume loads scripts from ConfigMap.
mountPath: "/scripts"
这个初始化容器中的脚本有两个功能:
- 如果在Pod 0中运行,它只是打印一条日志以确认这是数据库主节点,然后容器退出。
- 如果在其他任何Pod中运行,它会对主节点进行DNS查找调用,以确保在
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



