根据文档,你应该能够让Traefik使用以下方法执行302重定向:
traefik.ingress.kubernetes.io/redirect-regextraefik.ingress.kubernetes.io/redirect-replacement我的目标是简单地www.从地址中删除.
这是我尝试过的,但我找不到404服务.
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: www-redirect
namespace: public
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/redirect-regex: ^https?://www.example.com/(.*)
traefik.ingress.kubernetes.io/redirect-replacement: https://example.com/$1
spec:
rules:
- host: www.example.com
Run Code Online (Sandbox Code Playgroud)
不幸的是,文档没有明确说明如何使用它们.在撰写本文时,唯一的谷歌就是文档(上图).
我目前的工作(假设它将有助于解释问题)是将www.流量路由到返回302的nginx.
server {
listen 80;
server_name www.example.com;
return 302 https://example.com$request_uri;
}
Run Code Online (Sandbox Code Playgroud)
这看起来有点矫枉过正.
我们有一个由kubernetes ingress创建的HTTP(s)Load Balancer,它指向由运行nginx和Ruby on Rails的pod组成的后端.
看一下负载均衡器日志,我们检测到越来越多的请求,响应代码为0和statusDetails= client_disconnected_before_any_response.
我们试图理解为什么会发生这种情况,但我们没有找到任何相关的东西.nginx访问或错误日志中没有任何内容.
这种情况发生在从GET到POST的多种请求中.
我们还怀疑有时尽管请求记录了该错误,但请求实际上是传递给后端的.例如,我们看到了PG :: UniqueViolation错误,因为在我们的注册终端中,两次发送了令人满意的注册请求到后端.
任何形式的帮助将不胜感激.谢谢!
我已经创建了一个基于日志的Stackdriver度量标准,用于计算出现此行为的请求数.这是图表:
大峰大致匹配这些kubernetes事件的时间戳:
完整错误: Readiness probe failed: Get http://10.48.1.28:80/health_check: net/http: request canceled (Client.Timeout exceeded while awaiting headers)"
因此有时候后端后面的pod的准备探测失败了,但并非总是如此.
这是readinessProbe的定义
readinessProbe:
failureThreshold: 3
httpGet:
httpHeaders:
- name: X-Forwarded-Proto
value: https
- name: Host
value: [redacted]
path: /health_check
port: 80
scheme: HTTP
initialDelaySeconds: 1
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 5
Run Code Online (Sandbox Code Playgroud) kubernetes google-kubernetes-engine google-cloud-networking kubernetes-ingress
我有一个v1.11.0用kubeadm创建的裸机kubernetes()集群,工作正常,没有任何问题.使用calico网络并使用kubectl taint nodes命令将其设为单节点集群.(单个节点是必需的).
我需要在主机端口80上运行mydockerhub/sampleweb静态网站图像.假设运行此kubernetes的ubuntu服务器的IP地址是192.168.8.10.
如何使我的静态网站可用192.168.8.10:80或在本地DNS服务器上映射到它的主机名?(例如:) frontend.sampleweb.local:80.后来我需要在映射到另一个子域的不同端口上运行其他服务.(例如:backend.sampleweb.local:80哪些路由到端口8080上运行的服务).
我需要知道:
群集需要哪些其他配置?(网络政策等)
如果提供了样本yaml文件,我们非常感激.
我是kubernetes世界的新手.我得到了样本kubernetes部署(如袜子店)端到端工作没有任何问题.我尝试使用NodePort来访问该服务,但不是在不同的端口上运行它,而是需要在主机上运行它确切的端口80.我尝试了许多入口解决方案但没有工作.
我需要允许来自多个来源的请求:http://localhost:4200,http://localhost:4242,等,nginx的上,入口版本1.7.1。但我无法为多个来源做到这一点,因为nginx.ingress.kubernetes.io/cors-allow-credentials: true不会与nginx.ingress.kubernetes.io/cors-allow-origin: "*". 它会导致浏览器生成 CORS 错误。也许有人有避免此错误的解决方案?
这是我的配置
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-origin: "*"
nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, OPTIONS, DELETE"
nginx.ingress.kubernetes.io/cors-allow-headers: "DNT,X-CustomHeader,X-LANG,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Api-Key,X-Device-Id,Access-Control-Allow-Origin"
Run Code Online (Sandbox Code Playgroud)
从源“ http://localhost:4200 ”访问“ https://stage.site.com/api/session ”的XMLHttpRequest已被 CORS 策略阻止:“Access-Control-Allow-Origin”的值当请求的凭据模式为“包含”时,响应中的标头不得为通配符“*”。XMLHttpRequest 发起的请求的凭证模式由 withCredentials 属性控制。
我想要做的是在default命名空间中拥有一个服务,并在其他命名空间中拥有指向该服务的入口。我尝试实现如下所示的服务和 Ingress,但没有成功。
kind: Service
apiVersion: v1
metadata:
name: serviceX
namespace: default
spec:
type: ExternalName
externalName: serviceX.default.svc.cluster.local
ports:
- port: 123
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: web-ingress-test-vpndev
namespace: my-namespace
spec:
tls:
- hosts:
- abc.my-namespace.domain.com
secretName: tls-secret-my-namespace
rules:
- http:
paths:
- path: "/"
backend:
serviceName: serviceX
servicePort: 123
status:
loadBalancer:
ingress: {}
Run Code Online (Sandbox Code Playgroud)
我知道我可以在每个命名空间中实现该服务,但我想知道是否可以拥有单个服务。如果我尝试externalName在入口的处理程序中输入服务的名称backend->serviceName,则会收到错误消息,指出服务的名称只能包含数字、字母和“-”。
我正在尝试使用 Terraform 资源创建一个带有 ALB 入口的 AWS EKS 集群。
该文档表明入口将自动创建一个带有关联侦听器和目标组的负载均衡器。
Kubernetes Ingress 创建 ALB 负载均衡器、安全组和规则,但不创建目标组或侦听器。我曾尝试使用网关或应用程序子网,但没有任何区别。我尝试设置安全组,但 ALB 设置并使用了它自己的自我管理的安全组。
我依赖本指南
ALB 的卷曲让我感到
无法连接到 de59ecbf-default-mainingre-8687-1051686593.ap-southeast-1.elb.amazonaws.com 端口 80:连接被拒绝
我分别创建了 IAM 角色和 ACM 证书,因为 AWS 对这些有配额限制。我的 EKS 集群和节点角色是标准的,节点角色附加了最新的策略。
我曾经kubectl单独应用 kubernetes 入口,但结果相同。它创建 ALB 和一个安全组,其中包含端口规则,但没有目标组或侦听器。
当我将集群端点粘贴aws eks describe-cluster --name my-tf-eks-cluster --query "cluster.endpoint"到浏览器中时,我得到以下信息:
{ "kind": "Status", "apiVersion": "v1", "metadata": { }, "status": "Failure", "message": "forbidden: User "system:anonymous" cannot get path "/ "", "reason": "Forbidden", "details": { }, "code": 403 }
此外,入口没有 IP 地址。 …
terraform kubernetes-ingress terraform-provider-aws amazon-eks
我正在使用 Kubernetes v1.20.10 裸机安装。它有1个主节点和3个工作节点。该应用程序只是提供 HTTP 请求。
我正在基于 (HPA) Horizontal Pod Autoscaler 扩展部署,我注意到负载在 Pod 之间分布不均匀。只有第一个 Pod 获得了 95% 的负载,而另一个 Pod 的负载非常低。
我尝试了这里提到的答案,但没有成功:Kubernetes service does not distribution requests Between pods
目前,我正在尝试将位于 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变量,但似乎不可能。
模仿此代理通行证的最佳方法是什么?
我跑了minikube start --vm=true哪个输出:
minikube v1.12.2 on Darwin 10.15.5
? Using the docker driver based on existing profile
? Your system has 16384MB memory but Docker has only 1991MB. For a better performance increase to at least 3GB.
Docker for Desktop > Settings > Resources > Memory
Starting control plane node minikube in cluster minikube
Restarting existing docker container for "minikube" ...
Preparing Kubernetes v1.18.3 on Docker 19.03.8 ...
Verifying Kubernetes components...
Enabled addons: dashboard, default-storageclass, storage-provisioner
Done! kubectl …Run Code Online (Sandbox Code Playgroud)