- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 Kubernetes 的东西有点陌生,我正在尝试改进我们这里现有的一个系统。
该应用程序是使用 Spring Boot 开发的,直到现在它使用 HTTP(端口 8080),没有任何加密。系统要求是为所有传输中的数据启用 e2e 加密。所以这就是问题所在。
目前,我们使用 Let's Encrypt 启用了启用了 TLS 的 GCE Ingress,以在集群入口提供证书。这工作正常。我们的 Ingress 有一些路径规则来将流量重定向到正确的微服务,并且这些微服务在通信中没有使用 TLS。
我设法创建了一个自签名证书并将其嵌入到 WAR 中,这在本地机器上运行良好(使用禁用证书验证)。当我在 GKE 上部署它时,GCP 健康检查和 Kubernetes 探测器根本不起作用(我在应用程序日志上看不到任何通信尝试)。
当我尝试在 GCP 上配置后端和健康检查同时更改为 HTTPS 时,它们没有显示任何错误,但一段时间后它们悄悄地切换回 HTTP。
这是我的 YAML 文件:
---
apiVersion: v1
kind: Service
metadata:
name: admin-service
namespace: default
spec:
type: NodePort
selector:
app: admin
ports:
- port: 443
targetPort: 8443
name: https
protocol: TCP
---
apiVersion: "apps/v1"
kind: "Deployment"
metadata:
name: "admin"
namespace: "default"
labels:
app: "admin"
spec:
replicas: 1
selector:
matchLabels:
app: "admin"
template:
metadata:
labels:
app: "admin"
spec:
containers:
- name: "backend-admin"
image: "gcr.io/my-project/backend-admin:X.Y.Z-SNAPSHOT"
livenessProbe:
httpGet:
path: /actuator/health/liveness
port: 8443
scheme: HTTPS
initialDelaySeconds: 8
periodSeconds: 30
readinessProbe:
httpGet:
path: /actuator/health/readiness
port: 8443
scheme: HTTPS
initialDelaySeconds: 8
periodSeconds: 30
env:
- name: "FIREBASE_PROJECT_ID"
valueFrom:
configMapKeyRef:
key: "FIREBASE_PROJECT_ID"
name: "service-config"
---
apiVersion: "autoscaling/v2beta1"
kind: "HorizontalPodAutoscaler"
metadata:
name: "admin-etu-vk1a"
namespace: "default"
labels:
app: "admin"
spec:
scaleTargetRef:
kind: "Deployment"
name: "admin"
apiVersion: "apps/v1"
minReplicas: 1
maxReplicas: 3
metrics:
- type: "Resource"
resource:
name: "cpu"
targetAverageUtilization: 80
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: my-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: my-ingress-addr
kubernetes.io/ingress.class: "gce"
kubernetes.io/tls-acme: "true"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
acme.cert-manager.io/http01-edit-in-place: "true"
kubernetes.io/ingress.allow-http: "false"
spec:
tls:
- hosts:
- my-domain.com
secretName: mydomain-com-tls
rules:
- host: my-domain.com
http:
paths:
- path: /admin/v1/*
backend:
serviceName: admin-service
servicePort: 443
status:
loadBalancer:
ingress:
- ip: XXX.YYY.WWW.ZZZ
阅读
this document from GCP我了解 Loadbalancer 它与自签名证书兼容。
scheme
) 找到的解决方案更新了部署 YAML。
最佳答案
这是我发现的有关如何解决此问题的信息。
在阅读了大量与 Kubernetes 和 GCP 相关的文档后,我找到了一份关于 GCP 的文档,解释了在服务声明中使用注释。看一下第 7-8 行。
---
apiVersion: v1
kind: Service
metadata:
name: admin-service
namespace: default
annotations:
cloud.google.com/app-protocols: '{"https":"HTTPS"}'
spec:
type: NodePort
selector:
app: iteam-admin
ports:
- port: 443
targetPort: 8443
name: https
protocol: TCP
这将提示 GCP 创建
后端服务 和
健康检查使用 HTTPS,一切都会按预期工作。
关于ssl - 启用 SSL 的 GCP 运行状况检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63652017/
@messages = current_user.message_participantions.where(:read => false, :updated_at > 5.days.ago) 5 天
for ($i=1; $i query("UPDATE `jpa` SET `war` = $b WHERE `id` = $a"); $mysqli->query("UPDATE `
我试图根据数据中的 future 日期是否会发生条件来标记每一行。这种情况过去是否发生过并不重要。此外,我正在尝试按组执行此标记。 考虑这个问题的一个直观方法是是否有人会在未来购买裤子。 id
我的数据通过 ajax 返回到 Blade 中的表中,但我需要在返回的数据中使用过滤器。 示例 如果我使用 Blade 环,我可以使用@if ($loop->last)为了对我的最后一条记录进行特殊更
我有一个进程会触发多个请求,这些请求又会触发多个 Webhooks。当我收到所有网络钩子(Hook)时,我知道该过程已完成。我的模型看起来像这样。 { name: 'name', st
到目前为止,我知道 EOF 是一个特殊字符,自动插入到文本文件的末尾以指示其结束。但我现在觉得需要对此进行更多澄清。我在 Google 和 Wikipedia 页面上查看了 EOF,但他们无法回答以下
我在 javascript (React.j) 中编写了以下使用 for 循环的函数: getOpponentTeam: function(playerTeamId){ var matches =
我是 codeigniter 的新手,我想通过传递许多条件来选择用户的详细信息。我通过了一些条件,例如: $this->db->where ( 'userprofile.Disability', $
我是一名优秀的程序员,十分优秀!