【发布时间】:2019-01-05 20:03:49
【问题描述】:
我有 1 个节点和 3 个 pod。我想在三个 pod 中的 1 个中推出新图像,而其他 2 个 pod 保留旧图像。有可能吗?
第二个问题。我尝试推出一个包含错误的新图像,并且我已经定义了 maxUnavailable。但是 kubernetes 仍然会推出所有的 pod。我认为一旦 kubernetes 在第一个 pod 中发现错误,kubernetes 将停止推出整个 pod。我们是否需要手动停止推出?
这是我的部署脚本。
# Service setup
apiVersion: v1
kind: Service
metadata:
name: semantic-service
spec:
ports:
- port: 50049
selector:
app: semantic
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: semantic-service
spec:
selector:
matchLabels:
app: semantic
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
template:
metadata:
labels:
app: semantic
spec:
containers:
- name: semantic-service
image: something/semantic-service:v2
【问题讨论】:
-
您正在寻找“金丝雀”或“蓝/绿”部署策略;两者都需要两个部署对象。问题的后半部分有几个案例(新的 Deployment 还是更新?Kubernetes 知道错误吗?)如果您说出如何创建或更改 Deployment 以及 Pod 的状态可能会有所帮助,甚至可能在一个单独的问题中。
标签: docker kubernetes google-cloud-platform