标签: kubernetes-ingress

kubernetes Ingress Nginx 可以自动缩放吗?

当 Ingress Nginx 控制器达到其最大容量时,它会自动扩展吗?Kubernetes Ingress 是否可扩展?

nginx kubernetes kubernetes-ingress

11
推荐指数
1
解决办法
2万
查看次数

在 Kubernetes 的 Nginx Ingress 对象中设置代理传递的最佳方法是什么

目前,我正在尝试将位于 Apache 负载平衡服务器上的站点迁移到我的 k8s 集群。然而,该应用程序使用 proxypass 和 proxyreversepass 进行了奇怪的设置,如下所示:

ProxyPass /something http://example.com/something
ProxyPassReverse /something http://example.com/something
Run Code Online (Sandbox Code Playgroud)

我想在 Nginx Ingress 中模仿这个

首先,我尝试使用rewrite-target注释,但是它不会保留Location让应用程序再次运行所必需的标头。

然后我尝试proxy-redirect-to/from在特定位置块中放置注释,如下所示:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: gpg-app-ingress
  annotations:
    nginx.ingress.kubernetes.io/proxy-redirect-from: http://originalapp.com/something
    nginx.ingress.kubernetes.io/proxy-redirect-to: http://example.com/something
spec:
  rules:
  - host: example.com
    http:
      paths:
        - path: /something
          backend:
            serviceName: example-com
            servicePort: 80
Run Code Online (Sandbox Code Playgroud)

我希望能够改用自定义proxy_pass变量,但似乎不可能。

模仿此代理通行证的最佳方法是什么?

proxy nginx kubernetes kubernetes-ingress nginx-ingress

11
推荐指数
1
解决办法
2万
查看次数

Kubernetes 入口控制器无法找到证书密钥

我正在设置一个包含入口控制器证书的机密,但在检查入口日志时出现以下错误

入口日志:

W0304 05:47:32.020497       7 controller.go:1153] Error getting SSL certificate "default/auth-tls": local SSL certificate default/auth-tls was not found. Using default certificate
W0304 05:47:32.020516       7 controller.go:1407] Error getting SSL certificate "default/auth-tls": local SSL certificate default/auth-tls was not found
I0304 05:47:32.114777       7 main.go:117] "successfully validated configuration, accepting" ingress="hello-kubernetes-ingress" namespace="default"
Run Code Online (Sandbox Code Playgroud)

秘密:

$ kubectl create secret tls auth-tls --cert key.pem --key out.key
$ kubectl describe secret auth-tls
Name:         auth-tls
Namespace:    default
Labels:       <none>
Annotations:  <none>

Type:  kubernetes.io/tls

Data
====
tls.crt:  3231 bytes
tls.key:  1732 …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-ingress kubernetes-secrets

11
推荐指数
1
解决办法
1万
查看次数

无法在 Azure k8s 集群中使用带有自定义类的 helm 创建第二个入口控制器

我使用 Helm 和默认配置创建了一个入口控制器

default        nginx-ingress-controller        LoadBalancer   10.0.182.128   xx.xxx.xx.90     80:32485/TCP,443:31756/TCP   62m
default        nginx-ingress-default-backend   ClusterIP      10.0.12.39     <none>           80/TCP                       62m
Run Code Online (Sandbox Code Playgroud)

使用头盔:

helm install nginx-ingress stable/nginx-ingress \         
--set controller.replicaCount=2 \     
--set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set controller.service.loadBalancerIP="Created static IP" \
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-dns-label-name"="XXX-aks-ingress"
Run Code Online (Sandbox Code Playgroud)

该入口正在默认命名空间中运行。

现在,我想添加第二个入口控制器,从官方文档我有特定的入口类

helm install nginx-ingress stable/nginx-ingress \     
--namespace ingress-nginx-devices \ #I create this namespace first 
--set controller.ingressClass="nginx-devices" \   # custom class to use for different ingress resources  
--set controller.replicaCount=2 \     
--set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set controller.service.loadBalancerIP="A second static Ip …
Run Code Online (Sandbox Code Playgroud)

nginx kubernetes kubernetes-ingress azure-aks nginx-ingress

11
推荐指数
2
解决办法
1万
查看次数

nginx.conf忽略nginx-ingress配置映射片段

我有一个kubernetes集群,我使用helm nginx-ingress图表部署了一个nginx入口控制器.

我需要在nginx-controller-pod中生成的nginx.conf文件中添加一些自定义配置,我看到一个问题,如果我添加一行选项,如proxy-buffer-size: "512k"我可以看到这反映在nginx.conf中文件和一切按预期工作.

但是,如果我尝试添加一个片段来完成同样的事情:

location-snippet: |
  proxy_buffer_size "512k";
Run Code Online (Sandbox Code Playgroud)

就好像nginx.conf文件忽略了proxy_buffer_size它,并且设置保持默认值.

我需要能够添加http-snippet,server-snippetlocation-snippet重写,但我是否尝试将它们添加到ConfigMap或注释中Ingress.yaml文件,他们总是被忽略.

我的Ingress yaml文件:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    ingress.kubernetes.io/ssl-redirect: "true" 
    ingress.kubernetes.io/secure-backends: "true"    
    ingress.kubernetes.io/force-ssl-redirect: "true"

    ingress.kubernetes.io/location-snippet: |
       proxy_buffer_size 512k;     --This does not update the nginx.conf
spec:
  tls:
  - hosts:
    - my.app.co.uk
    secretName: tls-secret

  rules:
  - host: my.app.co.uk
    http:
      paths:
      - path: /
        backend:
          serviceName: myappweb-service
          servicePort: 80
Run Code Online (Sandbox Code Playgroud)

我的nginx配置图:

apiVersion: v1
kind: ConfigMap
metadata:
  labels: …
Run Code Online (Sandbox Code Playgroud)

yaml nginx kubernetes kubernetes-ingress nginx-ingress

10
推荐指数
3
解决办法
5198
查看次数

如何在 AWS ALB 入口控制器中重写目标 url?

在经典的 Kubernetes Nginx 入口中,我知道可以通过应用此注释基于特定的正则表达式重写目标 url nginx.ingress.kubernetes.io/rewrite-target: /$1

但是此注释在 AWS ALB 入口中不起作用。有谁知道是否可以使用这种入口进行重写工作?

url-rewriting kubernetes kubernetes-ingress amazon-eks aws-application-load-balancer

10
推荐指数
1
解决办法
5880
查看次数

Kubernetes ingress 如何设置default-ssl-certificate?

我有一个通用 SSL 证书 *.domain.com 我想为 4 级域 (my4.level.domain.com) 配置 HTTPS 我在本讨论中读到,我需要使用 --default-ssl-certificate

但我不明白如何使用它

我应该如何更改此配置?

ingress:
  enabled: true
  annotations: {}
  labels: {}
  path: /
  hosts:
    - my4.level.domain.com
  extraPaths: []
  tls:
   - secretName: tls-tierra-ingress
     hosts:
       - '*.level.domain.com'
       - level.domain.com
       - my4.level.domain.com
Run Code Online (Sandbox Code Playgroud)

或者我必须运行特殊命令?

kubernetes-helm kubernetes-ingress

10
推荐指数
2
解决办法
3万
查看次数

如何在 Kubernetes 中设置自定义 HTTP 错误

我想创建一个自定义的 403 错误页面。目前我已经创建了一个 Ingress 并且在注释中我有这样的东西:

"nginx.ingress.kubernetes.io/whitelist-source-range": "100.01.128.0/20,88.100.01.01"
Run Code Online (Sandbox Code Playgroud)

因此,在该 IP 范围之外访问我的 Web 应用程序的任何尝试都会收到 403 错误。

为了创建自定义页面,我尝试添加以下注释:

"nginx.ingress.kubernetes.io/custom-http-errors": "403",
"nginx.ingress.kubernetes.io/default-backend": "default-http-backend"
Run Code Online (Sandbox Code Playgroud)

其中 default-http-backend 是已部署的应用程序的名称。 豆荚详情

入口有这个:

{
  "kind": "Ingress",
  "apiVersion": "extensions/v1beta1",
  "metadata": {
    "name": "my-app-ingress",
    "namespace": "my-app-test",
    "selfLink": "/apis/extensions/v1beta1/namespaces/my-app-test/ingresses/my-app-ingress",
    "uid": "8f31f2b4-428d-11ea-b15a-ee0dcf00d5a8",
    "resourceVersion": "129105581",
    "generation": 3,
    "creationTimestamp": "2020-01-29T11:50:34Z",
    "annotations": {
      "kubernetes.io/ingress.class": "nginx",
      "nginx.ingress.kubernetes.io/custom-http-errors": "403",
      "nginx.ingress.kubernetes.io/default-backend": "default-http-backend",
      "nginx.ingress.kubernetes.io/rewrite-target": "/",
      "nginx.ingress.kubernetes.io/whitelist-source-range": "100.01.128.0/20,90.108.01.012"
    }
  },
  "spec": {
    "tls": [
      {
        "hosts": [
          "my-app-test.retail-azure.js-devops.co.uk"
        ],
        "secretName": "ssl-secret"
      }
    ],
    "rules": [
      {
        "host": "my-app-test.retail-azure.js-devops.co.uk",
        "http": {
          "paths": [ …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-ingress

10
推荐指数
2
解决办法
2817
查看次数

带有 ALB 入口控制器的 Terraform AWS Kubernetes EKS 资源不会创建负载均衡器

我一直在尝试使用 Terraform 在 AWS 上创建一个具有自我管理节点的 EKS 集群,但我无法让我的 Kubernetes Ingress 创建负载均衡器。没有错误,但没有创建负载均衡器,它只是超时。

我确实首先在我的帐户中手动创建了一个负载均衡器,并验证了负载均衡器角色是否存在。AWSElasticLoadBalancingServiceRolePolicy当我的 Terraform 代码运行时访问该策略。

我非常依赖本教程

变量:

aws_region     = "ap-southeast-1"
domain         = "*.mydomain.com"
cluster_name   = "my-tf-eks-cluster"
vpc_id         = "vpc-0d7700e26db6b3e21"
app_subnet_ids = "subnet-03c1e8c57110c92e0, subnet-0413e8bf24cb32595, subnet-047dcce0b810f0fbd"
// gateway subnet IDs
Run Code Online (Sandbox Code Playgroud)

地形代码:

terraform {
}

provider "aws" {
 region  = var.aws_region
 version = "~> 2.8"
}

data "aws_acm_certificate" "default" {
  domain   = var.domain
  statuses = ["ISSUED"]
}

resource "kubernetes_service_account" "alb-ingress" {
  metadata {
    name = "alb-ingress-controller"
    namespace = "kube-system"
    labels = { …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services kubernetes terraform kubernetes-ingress amazon-eks

10
推荐指数
1
解决办法
2384
查看次数

使用 kong ingress 时出现错误 {"message":"failure to get a Peer from the Ring-Balancer"}

当我尝试使用公共IP访问时收到错误消息:

"{"message":"failure to get a peer from the ring-balancer"}"
Run Code Online (Sandbox Code Playgroud)

看来Kong无法提供上游服务。

我正在使用投票应用程序

入口.yaml

"{"message":"failure to get a peer from the ring-balancer"}"
Run Code Online (Sandbox Code Playgroud)

服务.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: telehealth-ingress
  namespace: kong
  annotations:
    kubernetes.io/ingress.class: "kong"
spec:
  rules:
  - http:
      paths:
      - backend:
          serviceName: voting-service
          servicePort: 80
Run Code Online (Sandbox Code Playgroud)

部署.yaml

apiVersion: v1
kind: Service
metadata:
  name: voting-service
  labels:
    name: voting-service
    app: voting-app
spec:
  ports:
    - targetPort: 80
      port: 80
  selector:
    name: voting-app-pod
    app: voting-app
Run Code Online (Sandbox Code Playgroud)

kubernetes kong kubernetes-ingress kong-ingress

10
推荐指数
1
解决办法
5万
查看次数