小编IaM*_*CuP的帖子

如果部署中的副本数为1,并且部署不好,则无论如何都会发生部署,我可以更改此行为吗?

我正在玩这个:http://kubernetes.io/docs/user-guide/deployments/在我的基础设施中.我有一些部署,我需要复制品 - 但我有一些我只需要在部署中的一个副本 - 但有一个简单的方法来更改图像版本是伟大的和必需的.

所以我试着看看如果你在只有1个副本的部署上运行一个损坏的更新会发生什么 - 如果我们执行以下操作(来自上面的文档):

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
Run Code Online (Sandbox Code Playgroud)

如果我们再运行 kubectl create -f nginx-deployment.yaml

我们看到3个健康运行的复制品.

如果我们然后将上面的文件更改replicas: 3replicas: 1并运行apply命令:kubectl apply -f nginx-deployment.yaml- 我们看到1个健康的副本.

现在 - 如果我们改成image: nginx:1.7.9类似的东西image: nginx:1.7.9broken- 然后运行,kubectl apply -f nginx-deployment.yaml我们会看到类似这样的东西:

$ kubectl get rs
NAME                             DESIRED   CURRENT   AGE …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform kubernetes

3
推荐指数
1
解决办法
2525
查看次数

部署未检测到init-container中容器图像标记的更改

我一直在使用init-containers,因为它们变得可用并且发现它们非常有用.我的核心映像(下面作为web-dev)没有太大变化,但我的init-container映像(下面作为web-data-dev)确实经常更改.

init-container使用带有版本号的容器映像.我将此版本号更改为最新值,然后执行kubectl apply -f deployment.yaml

例如,在运行kubectl apply之前,我将eu.gcr.io/project/web-data-dev:187更改为eu.gcr.io/project/web-data-dev:188.

然而,当我这样做时,没有发生部署,如果我对init-container使用的映像进行任何更改,部署仍然不会发生.我认为这是因为没有检测到init-container更改.

然后我试图在图像字段中放入一些垃圾,如下所示:"image":"thisIsNotAnImage"并再次运行kubectl apply -f,但仍未应用更新.

我的问题是 - 如何使用kubectl apply -f检测init-container中的图像标签更改?我做错了什么,这是一个错误,还是这还没有实现,因为init-containers是Alpha?

完整部署YAML如下.

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: web-deployment
spec:
  replicas: 1
  strategy:
    rollingUpdate:
      maxUnavailable: 0
  template:
    metadata:
      labels:
        app: web
        tier: frontend
      annotations:
        pod.alpha.kubernetes.io/init-containers: '[
            {
                "name": "initialiser1",
                "image": "eu.gcr.io/project/web-data-dev:187",
                "command": ["cp", "-r", "/data-in/", "/opt/"],
                "volumeMounts": [
                    {
                        "name": "file-share",
                        "mountPath": "/opt/"
                    }
                ]
            }
        ]'
    spec:
      containers:

        - image: eu.gcr.io/project/web-dev:20
          name: web
          resources:
            requests:
              cpu: 10m …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform kubernetes google-kubernetes-engine

3
推荐指数
1
解决办法
1236
查看次数