- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想要的设置相当简单。我在 kubernetes 集群中托管 gitlab,它的入口定义为:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: gitlab-public
namespace: gitlab
annotations:
kubernetes.io/ingress.global-static-ip-name: git-public
spec:
tls:
- secretName: gitlab-cert
backend:
serviceName: gitlab
servicePort: 80
这为我设置了一切 - 启用了 SSL 终止,它使用我的 letsencrypt 证书。问题是(显然)SSH 不适用于存储库。 pod 暴露了 22 的端口,我已经验证过了:
不过Ingress貌似不支持统一的L4+L7规范。到目前为止我考虑过的其他一些选项:
ssh.git.mycompany.com
并使用它来转发 SSH 流量。最大的问题是现在有很多开发人员在使用它,他们将不得不更改他们的 .git/config
文件,这将是极具破坏性的(不是以硅谷的方式) .解决这个问题的最佳方法是什么?
编辑:修改标题,因为答案有点特定于 GitLab,因此可能有助于人们寻找确切的问题。
最佳答案
因此,我不完全确定这是否可以作为答案,因为虽然它实现了我们想要做的一切;它不支持负载均衡器的 SSL 终止。
所以基本的折衷是这样的:
tls.crt
和 tls.key 的特定格式
,均为 pem 格式)。您可以通过将这两个 key 安装为文件然后更改 nginx 设置(ssl_certificate
和 ssl_certificate_key
)来继承相同的结构:在您的卷部分:
卷: - 名称:gitlab-cert secret : secret 名称: 项目: - key :tls.key 路径:git.mycompany.com.key - key :tls.crt 路径:git.mycompany.com.crt
然后将其挂载到您想要的任何位置:
卷挂载: - 名称:gitlab-certs 挂载路径:/etc/gitlab/ssl/
在上面的例子中,这会让你的 gitlab.rb
看起来像:
nginx['ssl_certificate'] = "/etc/gitlab/ssl/git.mycompany.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/git.mycompany.com.key"
如果您托管的域实际上是 git.mycompany.com
,那么您可以跳过此步骤,因为上面显示的位置是它的默认位置。
最后不使用 Ingress,只公开您的部署:
apiVersion: v1
kind: Service
metadata:
name: gitlab
namespace: gitlab
spec:
type: LoadBalancer
loadBalancerIP: <your-static-ip>
ports:
- port: 80
name: http
targetPort: 80
protocol: TCP
- port: 443
name: https
targetPort: 443
protocol: TCP
- port: 22
name: ssh
targetPort: 22
protocol: TCP
selector:
app: gitlab
loadBalancerIP
的静态 ip 是您需要从 google 控制台获取的内容。请注意,这不适用于全局保留 IP。您必须获得与集群位于同一区域的区域 IP。
我仍然更喜欢 SSL 终止,因为这是我们所有其他服务的工作方式,而且非同质性让我有点恼火:(
关于kubernetes - 在 LoadBalancer 上设置 HTTP+HTTPs 和 TCP 端口(想转发 GitLab SSH 和 Web),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51205973/
Nginx默认支持'Round Robin'负载平衡,如果我将kubernetes服务类型设置为'LoadBalancer'(我认为这是服务提供商的network-LB?如this),那不会在堆栈中形
本文整理了Java中com.netflix.loadbalancer.ZoneAwareLoadBalancer类的一些代码示例,展示了ZoneAwareLoadBalancer类的具体用法。这些代码
本文整理了Java中com.netflix.loadbalancer.ZoneAvoidanceRule类的一些代码示例,展示了ZoneAvoidanceRule类的具体用法。这些代码示例主要来源于G
本文整理了Java中com.netflix.loadbalancer.ZoneAffinityServerListFilter类的一些代码示例,展示了ZoneAffinityServerListFil
我有一个 clusterIP 类型的 k8s 服务..我需要通过 CLI 更改以下配置 http 端口到 https 端口 端口号 负载均衡器的类型 有没有办法做到这一点..? 最佳答案 您无法删除现
我正在尝试使用 python/paramiko 将 SFTP 服务器部署到 AKS 中。 这已成功部署到裸机开发服务器中,但是我在将其部署到 AKS 中时遇到问题。 问题在创建 LoadBalance
我有 6 个 Pod,每个 Pod 应用程序从不同的端口监听,每个 Pod 都有自己的 IP 地址。 我有 Kubernetes LoadBalancer 服务 (Azure LoadBalancer
我有一项使用 Azure Kubernetes 群集和 AKS 负载均衡器的服务。我想将一些 HTTP(客户端)请求转发到所有实例。一般来说,有什么方法可以使用 AKS 或 Kubernetes 配置
Kubernetes 同时拥有 Ingress (在服务前面)和服务类型: LoadBalancer .这些似乎做相同的事情:允许公共(public)流量进入与服务选择器匹配的 pod。各自的优点和缺
我有一项使用 Azure Kubernetes 群集和 AKS 负载均衡器的服务。我想将一些 HTTP(客户端)请求转发到所有实例。一般来说,有什么方法可以使用 AKS 或 Kubernetes 配置
我有一个关于使用 Spring-Cloud Netflix 进行客户端负载平衡的问题。 启用负载平衡后,Ribbon 将选择要调用的服务器。选择规则取决于被选择的 IRule 实现。 以下实现之间有什
更新: 我编辑了我的问题,使其更加关注问题。 上下文 编写代码以了解负载平衡的工作原理。Debian 64 位。 127.0.0.1:36001 上的负载均衡器后端位于 127.0.0.1:36000
我正在尝试学习如何将 Kibernetes 与 Minikube 一起使用,并具有以下部署和服务: --- kind: Service apiVersion: v1 metadata: name:
apiVersion: v1 kind: Service metadata: name: nginx labels: name: nginx spec: ports: #
我用 nginx-ingress-controller:0.24.1 (Inspired by) 我想将 DNS A 记录设置为 LB IP 地址,以便将其连接到根中具有公共(public) inde
我有一个配置为 LoadBalancer 的服务,在运行 1.9.11 的五节点集群上运行。 LoadBalancer 位于运行 ASP.NET Core Web 应用程序的三个 pod 前面(该应用
我刚刚开始使用 Kubernetes,我对 NodePort 和 LoadBalancer 类型的服务之间的区别感到困惑。 我理解的区别是 LoadBalancer 不支持 UDP,但除此之外,每当我
我正在尝试在 Azure AKS 中部署 ftp 服务器镜像。为了向公众公开服务器,我添加了一个 LoadBalancer 类型的服务。 apiVersion: v1 kind: Service me
我在负载均衡器 (F5) 后面运行 2 个 OAuth2 授权服务器实例。我正在使用 JdbcTokenStore。一切工作正常,但有时我会收到错误“处理错误:InvalidGrantExceptio
我使用 Helm 图表在我的测试集群上安装了 Spinnaker。当我尝试创建 LoadBalancer 时,我注意到对话框中的“命名空间”下拉列表是空白的。当我刚刚尝试创建负载均衡器时,我看到错误“
我是一名优秀的程序员,十分优秀!