Ten*_*aru 6 google-cloud-platform kubernetes google-kubernetes-engine docker-ingress
首先,我在https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer 上测试了教程
这工作正常。我还测试了相同的教程,但也添加了一个 tls 秘密来测试 https,它也运行良好。
当我创建自己的图像时,我的问题就出现了。这是我采取的步骤:
# 我们将我们的舞台标记为“builder”
FROM node:9.4.0-alpine 作为构建器
复制 package.json package-lock.json ./
## 将节点模块存储在单独的层上将防止在每次构建时安装不必要的 npm
运行 npm i && mkdir /srv/cs-ui && cp -R ./node_modules ./srv/cs-ui
工作目录 /srv/cs-ui
复制 。.
## 在生产模式下构建 angular 应用程序并将工件存储在 dist 文件夹中
运行 $(npm bin)/ng build --environment "prod"
从 nginx
## 复制我们的默认 nginx 配置
复制 nginx/default.conf /etc/nginx/conf.d/
##删除默认的nginx网站
运行 rm -rf /usr/share/nginx/html/*
## 从“builder”阶段将 dist 文件夹中的工件复制到默认的 nginx nginx 公共文件夹
复制 --from=builder /srv/cs-ui/dist /usr/share/nginx/html/
版本:'2'
服务:
cs-ui:
图片:“gcr.io/cs-micro/cs-ui:v1”
容器名称:“cs-ui”
tty: 真的
建造: 。
端口:
- “80:80”
gcloud docker -- 推送 gcr.io/cs-micro/cs-ui:v1
kubectl run cs-ui --image=gcr.io/cs-micro/cs-ui:v1 --port=80
kubectl 公开部署 cs-ui --target-port=80 --type=NodePort
apiVersion: 扩展/v1beta1
种类:入口
元数据:
名称:基本入口
规格:
网址:
- 秘密名称:tls-证书
后端:
服务名称:cs-ui
服务端口:80
使用命令:
kubectl apply -f test.yaml
名称:cs-ui
命名空间:默认
标签:run=cs-ui
注释:
选择器:run=cs-ui
类型:节点端口
IP:10.35.244.124
端口:80/TCP
目标端口:80/TCP
节点端口:30272/TCP
端点:10.32.0.32:80
会话亲和力:无
外部流量策略:集群
事件:
名称:kubernetes
命名空间:默认
标签:组件=apiserver
提供者=kubernetes
注释:
选择器:
类型:集群IP
IP:10.35.240.1
端口:https 443/TCP
目标端口:443/TCP
端点:35.195.192.28:443
会话亲和性:ClientIP
事件:
名称:cs-ui
命名空间:默认
创建时间戳:2018 年 1 月 25 日星期四 12:27:59 +0100
标签:run=cs-ui
注解:deployment.kubernetes.io/revision=1
选择器:run=cs-ui
副本:1 个想要的 | 1 更新 | 共 1 个 | 1 个可用 | 0 不可用
策略类型:滚动更新
最小准备秒数:0
RollingUpdateStrategy:1 最大不可用,1 最大激增
豆荚模板:
标签:run=cs-ui
容器:
cs-ui:
图片:gcr.io/cs-micro/cs-ui:v1
端口:80/TCP
环境:
坐骑:
卷:
状况:
输入状态原因
---- ------ ------
可用真实最小副本数可用
旧副本集:
NewReplicaSet:cs-ui-2929390783(已创建 1/1 副本)
事件:
键入来自消息的原因年龄
---- ------ ---- ---- -------
正常 ScalingReplicaSet 9m deployment-controller 将副本集 cs-ui-2929390783 扩展为 1
名称:基本入口
命名空间:默认
地址:35.227.220.186
默认后端:cs-ui:80 (10.32.0.32:80)
TLS:
tls-证书终止
规则:
主机路径后端
---- ---- --------
* * cs-ui:80 (10.32.0.32:80)
注释:
https-forwarding-rule: k8s-fws-default-basic-ingress--f5fde3efbfa51336
https-target-proxy: k8s-tps-default-basic-ingress--f5fde3efbfa51336
ssl-cert: k8s-ssl-default-basic-ingress--f5fde3efbfa51336
目标代理:k8s-tp-default-basic-ingress--f5fde3efbfa51336
url-map: k8s-um-default-basic-ingress--f5fde3efbfa51336
后端:{“k8s-be-30272--f5fde3efbfa51336”:“不健康”}
转发规则:k8s-fw-default-basic-ingress--f5fde3efbfa51336
静态IP:k8s-fw-default-basic-ingress--f5fde3efbfa51336
事件:
键入来自消息的原因年龄
---- ------ ---- ---- -------
正常 ADD 12m loadbalancer-controller default/basic-ingress
正常 CREATE 11m loadbalancer-controller ip: 35.227.220.186
Normal Service 6m (x4 over 11m) loadbalancer-controller 默认后端设置为 cs-ui:30272
我已经阅读了无数关于当您获得 Unhealthy 后端状态时该怎么做的主题,但没有一个有帮助。有人提到要在本教程中添加防火墙规则:https : //cloud.google.com/compute/docs/load-balancing/health-checks,我已添加,但没有帮助。
如果您有任何建议,我会很乐意测试它们。
结果我们的 Angular 应用程序在“/”上进行了重定向,这给了它一个 302 响应。此响应会使运行状况检查失败并导致 UNHEALTHY 状态。
一旦我们设置了自定义健康检查,它就起作用了。
| 归档时间: |
|
| 查看次数: |
1110 次 |
| 最近记录: |