首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes:用TLS入侵资源更新部署映像

Kubernetes:用TLS入侵资源更新部署映像
EN

Server Fault用户
提问于 2016-05-09 14:31:25
回答 2查看 774关注 0票数 1

我正在尝试更新我的部署的image。为此,我正在执行kubectl edit deployment web,并将spec.template.spec.containers.image属性更改为:

代码语言:javascript
复制
gcr.io/my-project-id-1234/app:v1

至:

代码语言:javascript
复制
gcr.io/my-project-id-1234/app:v2

从日志中,我知道部署更新得很好。我遇到的问题是TLS入口;以下是我的配置:

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: tls-ingress
spec:
  tls:
    - secretName: tls-secrets
  backend:
    serviceName: web
    servicePort: 80

以下是更新之前的kubectl describe ing web的结果:

代码语言:javascript
复制
$ kubectl describe ing                                                                                                                                                          
Name:                   tls-ingress
Namespace:              default
Address:                105.78.154.212
Default backend:        web:80 (10.0.2.3:8000)
TLS:
  tls-secrets terminates 
Rules:
  Host  Path    Backends
  ----  ----    --------
Annotations:
  backends:                     {"k8s-be-32171":"HEALTHY"}
  forwarding-rule:              k8s-fw-default-tls-ingress
  https-forwarding-rule:        k8s-fws-default-tls-ingress
  https-target-proxy:           k8s-tps-default-tls-ingress
  static-ip:                    k8s-fw-default-tls-ingress
  target-proxy:                 k8s-tp-default-tls-ingress
  url-map:                      k8s-um-default-tls-ingress

在更新之前,一切都正常工作。但很快,流量就被成功地路由到了我的集群。描述入口现在返回:

代码语言:javascript
复制
Name:                   tls-ingress
Namespace:              default
Address:                105.78.154.212
Default backend:        web:80 (10.0.2.3:8000)
TLS:
  tls-secrets terminates 
Rules:
  Host  Path    Backends
  ----  ----    --------
Annotations:
  static-ip:                    k8s-fw-default-tls-ingress
  target-proxy:                 k8s-tp-default-tls-ingress
  url-map:                      k8s-um-default-tls-ingress
  backends:                     {"k8s-be-32171":"UNHEALTHY"}
  forwarding-rule:              k8s-fw-default-tls-ingress
  https-forwarding-rule:        k8s-fws-default-tls-ingress
  https-target-proxy:           k8s-tps-default-tls-ingress

在像这样更新我的部署时,我如何正确地更新“侵入”呢?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2016-05-09 17:57:30

攻题指的是服务。服务指向一组有一些标签的Pods。部署定义了Pods上的那些标签。下面是要排除哪些故障的列表:

  1. 确认您的服务上的标签选择器与部署正在创建的Pods上的标签匹配。否则,将不会为服务选择由部署创建的Pods,而您的进题将指向任何东西。
  2. 确认服务是以NodePort形式公开的。否则,来自Google的外部负载均衡器将无法到达您的集群内。
  3. 确认口袋妖怪正在运行/健康。可以对一个配置进行更新,但是Pods是不健康的,或者是在CrashLoop中。对于应用程序来说,使用200状态代码响应GET /是很重要的。
  4. 为健康检查创建防火墙规则: gcloud计算防火墙-规则创建允许-130-211-0-0-22-源-范围130.211.0.0/22 \-允许tcp:30000-32767
票数 1
EN

Server Fault用户

发布于 2016-05-09 17:54:22

入口报告{“K8s-be-32171”:“不健康”},表示后端服务上的健康检查失败。

确保应用程序吊舱已启动并运行,请使用

kubectl get pods <pod-name>

kubectl get deployment <deplyment-name>

如果应用程序荚已经准备好并运行,入口应该自动连接到新的豆荚,但它可能需要一段时间取决于健康检查参数。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/775673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档