TLS 不适用于 Kubernetes 中的负载均衡器后端服务

2023-12-03

我试图通过创建服务类型作为负载均衡器来公开集群中的应用程序。这样做的原因是我希望这个应用程序有一个单独的沟通渠道。我有一个 KOPS 集群。我想使用AWS的网络负载均衡器,以便它获得静态IP。当我创建服务并将端口 80 映射到应用程序运行的端口时,一切正常,但当我尝试添加端口 443 时,它就超时了。

这是有效的配置 -

apiVersion: v1
metadata:
  name: abc
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
  labels:
    app: abc
spec:
  externalTrafficPolicy: Local
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 9050
  selector:
    app: abc
  type: LoadBalancer

一旦我在配置文件中添加 TLS 支持并部署它。与负载均衡器的连接超时。如何向负载均衡器添加 TLS 支持? 我想通过服务而不是通过入口来完成此操作。 这是对我不起作用的配置,当我将链接粘贴到浏览器中时,它会超时。

kind: Service
apiVersion: v1
metadata:
  name: abc
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
    service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "60"
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: xxxxx
  labels:
    app: abc
spec:
  externalTrafficPolicy: Local
  ports:
  - name: http
    port: 443
    protocol: TCP
    targetPort: 9050
  selector:
    app: abc
  type: LoadBalancer

您可以使用 tls 和 ssl 终止

   apiVersion: v1
    kind: Service
    metadata:
      name: test-service
      annotations:
        # Note that the backend talks over HTTP.
        service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
        # TODO: Fill in with the ARN of your certificate.
        service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:{region}:{user id}:certificate/{id}
        # Only run SSL on the port named "https" below.
        service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
    spec:
      selector:
        app: test-pod
      ports:
      - name: http
        port: 80
        targetPort: 8080
      - name: https
        port: 443
        targetPort: 8080
      type: LoadBalancer

您可以在aws证书管理器中添加tls证书,并将证书的arn地址使用到kubernetes服务。

就像在 becked 中一样,您可以终止 https 连接并仅使用 HTTP。

你也可以看看这个:https://aws.amazon.com/premiumsupport/knowledge-center/terminate-https-traffic-eks-acm/

https://github.com/kubernetes/kubernetes/issues/73297

EDIT :1

service.beta.kubernetes.io/aws-load-balancer-type: nlb

如果不起作用,请尝试根据您的负载均衡器类型添加此注释。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TLS 不适用于 Kubernetes 中的负载均衡器后端服务 的相关文章

  • 带有 AWS S3 文件的 Icecast 服务器

    我目前正在运行 Icecast 服务器 用于在 EC2 实例上传输音频 目前我所有的 mp3 文件都存储在 EC2 实例上 我想将它们移动到 AWS S3 进行存储 到目前为止 我已经能够找到能够更新播放列表 https mediareal
  • 在 Serverless Framework 1.0 中使用路径参数

    我想使用路径参数 customer customerId of a GET请求以使用 AWS Lambda 查询客户 functions createCustomer handler handler createCustomer event
  • 在 ec2 上托管 Rails

    我想将 Rails 部署到亚马逊 ec2 上 我看过 poolparty 和 ec2onrails 但似乎都不再维护了 人们用什么来做到这一点 都是自制的木偶和卡皮斯特拉诺 还是有一个项目可以让我继续下去 我可以推荐两个项目 如果您有一个
  • 如何在 kubernetes 中将秘密标记为可选?

    来自文档 除非将秘密标记为可选 否则必须先创建秘密 然后再将其作为环境变量在 pod 中使用 引用不存在的 Secret 将阻止 pod 启动 如何将秘密标记为可选 您正在寻找的是 name ENV NAME valueFrom secre
  • 使用无服务器访问 SSM 变量

    我想用无服务器变量中的 SSM 参数 https serverless com blog serverless v1 22 0 按照文档 我运行了以下命令 aws ssm put parameter name foo value bar t
  • 无法使用 aws 无服务器离线从另一个 lambda 调用 lambda

    我想从 serverless offline 内的另一个 lambda 调用 lambda 我想创建一个无服务器离线 Web 应用程序 但我收到此错误 UnknownError 不支持的媒体类型 在 Object extractError
  • Spring JMS监听器即使在异常时也会确认

    我正在使用 JMS 向 SQS 队列发送 接收消息 但是即使在使用 client acknowledge 时出现异常 我也无法重新传递消息 如何实现这一目标 我尝试了一个简单的测试 JmsListener destination test
  • 如何在AWS策略中提供多个StringNotEquals条件?

    我正在尝试编写 AWS S3 存储桶策略 拒绝所有流量 除非来自两个 VPC 的流量 我正在尝试编写的策略如下所示 两者之间有逻辑与StringNotEquals 除非这是无效的政策 Version 2012 10 17 Id Policy
  • AWS cognito 用户迁移池触发器不适用于登录流程

    我正在使用带有认知执行角色的 Lambda 函数进行 AWS 认知池迁移 以下是我的新池应用程序客户端设置 or AWS doc says 用户迁移身份验证流程 用户迁移 Lambda 触发器 允许从旧用户管理系统轻松迁移用户 进入您的用户
  • 如何在 Kubernetes 中按特定顺序配置 Pod 初始化?

    我想知道如何按特定顺序开始部署 我知道initContainers但这对我不起作用 我有一个巨大的平台 有大约 20 个部署和 5 个有状态集 每个都有自己的服务 环境变量 卷 水平自动缩放器等 所以不可能 或者我不知道如何 在另一个中定义
  • AWS lambda 是否保证将函数更新到新版本时不会出现停机?

    默认情况下 AWS 使用LATEST更新了最新 lambda 版本的别名 我假设执行以下步骤 Now LATEST别名点版本 5 用户部署新版本的 lambda 在部署新版本时 LATEST别名仍然指向版本 5 部署完成后 Lambda 只
  • 使用 Docker Desktop 调试本地部署到 Kubernetes 的应用程序的最佳方法是什么?

    我有使用 Docker 开发相对复杂的应用程序的经验 使用 Visual Studio 2019 调试应用程序非常容易 我只是将 docker compose yaml 设置为启动应用程序并开始调试 是否可以使用 Docker Deskto
  • 容器中的 JVM 计算处理器错误?

    最近我又做了一些研究 偶然发现了这一点 在向 OpenJDK 团队抱怨之前 我想看看是否有其他人观察到这一点 或者不同意我的结论 因此 众所周知 JVM 长期以来忽略了应用于 cgroup 的内存限制 众所周知 现在从 Java 8 更新某
  • 更新项目时,NUMBER_VALUE 无法转换为字符串

    我在 DynamoDB 上遇到了这个奇怪的问题 我似乎无法更新项目 这是我的命令 TableName UserTable Key UID S h4XJj3YRxZiF7TDcGkxAhc UpdateExpression SET numRa
  • 如何授予轮换 Lambda 对 AWS Secrets Manager 的访问权限

    使用无服务器框架 我正在尝试构建定期轮换秘密的 Lambda 函数 https docs aws amazon com secretsmanager latest userguide rotating secrets html存储在 AWS
  • 如何限制对 Kubernetes 服务的访问?

    我正在尝试使用以下 yaml 创建服务 正如您所看到的 我正在尝试限制 10 0 0 0 8 范围内对该服务的访问 apiVersion v1 kind Service metadata name nginx service spec po
  • FluentD 日志不可读。已排除,下次检查

    面临 fluidd 日志无法读取 已排除 下次检查 我有一个在 kubernetes 设置中运行的 fluidD 守护进程集的简单配置 流利版本 fluidd 0 12 43 以下是我的配置
  • 使用 CognitoIdentityServiceProvider 的 adminCreateUser 方法的 AWS Lambda 函数突然失败

    在过去的几天里 我一直在使用 AWS Lambda 函数测试特定流程 并且在 Cognito 用户池中预注册后触发的 lambda 函数工作正常并很好地返回回调函数 但从昨天开始我就看到了以下错误 ntime node modules aw
  • cloudfront 响应状态为 413(请求实体太大)

    我们需要发送大量数据作为 URL 的一部分 Angular 将读取该数据以呈现页面 网址超过 10000 个字符 但 cloudfront 返回以下错误 错误的请求 由 cloudfront CloudFront 生成请求 ID I2fOA
  • Nginx url 限制 502 网关

    我有一个问题 但我接受绕过此功能的其他建议 基本上 我在 get 请求中向我的服务器发送大约 3000 个字符的大行文本 然后服务器将其作为 url 中的参数发送到谷歌翻译 问题 当 url gt 1900 个字符时 Nginx 会抛出 5

随机推荐