我让入口 nginx 工作在gcloud. 但是,当我使用命令看到日志时kubectl log
$ kubectl logs nginx-ingress-controller-59f55c679c-zcr24
myhost.com/clients"
10.28.0.1 - [10.28.0.1] - - [14/May/2018:09:00:59 +0000] "GET /api/users/2/10 HTTP/1.1" 304 0 "http://myhost.com/clients" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0" 796 0.083 [default-back-main-80] 10.28.0.93:1337 0 0.083 304
2018/05/14 09:01:00 [notice] 10982#10982: *6937489 "/api/(.*)" matches "/api/users/1/10", client: 10.28.0.1, server: myhost.com, request: "GET /api/users/1/10 HTTP/1.1", host: "myhost.com", referrer: "http://myhost.com/clients"
2018/05/14 09:01:00 [notice] 10982#10982: *6937489 rewritten data: "/users/1/10", args: "", client: 10.28.0.1, server: myhost.com, request: "GET /api/users/1/10 HTTP/1.1", …Run Code Online (Sandbox Code Playgroud) nginx kubernetes google-kubernetes-engine kubernetes-ingress
我想在 Google Kubernetes Engine 上运行 sails.js 应用程序。在本地运行应用程序 docker 容器效果很好。到 GKE 的部署是通过 gitlab Auto-Devops 管道完成的。到目前为止,将应用程序部署到 GKE 正在运行,我可以使用 gitlab-CI 生成的域访问 sails.js 应用程序的页面 - 例如xyz-review-autodevops-123.my.host.com
但是,当访问页面时,只能加载所请求的页面 - 所有资源(例如图像、javascript 和 css 文件)都不会加载,而是返回 404。
当查看 GKE 中的 nginx-ingress-controller 日志时,我发现请求了这些 url,但结果是 404:
[05/Aug/2018:12:27:25 +0000] "GET /js/cloud.setup.js HTTP/1.1" 404 9 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36" 573 0.004 [my-app-review-autodevops-1232u0-my-app-443] xx.xx.xx.xx:80 9 0.004 404
Run Code Online (Sandbox Code Playgroud)
还经常记录如下错误。我不确定这是否与此问题有关,但仍然想提一下,以防万一:
error obtaining PEM from secret my-app-1239989/review-autodevops-1232u0-my-app-tls: error retrieving secret my-app-1239989/review-autodevops-1232u0-my-app-tls: secret my-app-1239989/review-autodevops-1232u0-my-app-tls was not found" …Run Code Online (Sandbox Code Playgroud) sails.js gitlab-ci kubernetes google-kubernetes-engine kubernetes-ingress
我在一台机器上打开了一个 Kubernetes NodePort,并使用以下规则阻止了到该端口的所有流量:
sudo ufw deny 30001
Run Code Online (Sandbox Code Playgroud)
但我仍然可以通过浏览器访问该端口。常见吗?我在文档中找不到任何相关信息。
我创建了一个具有以下版本的 AKS 集群。
Kubernetes version: 1.12.6
Istio version: 1.1.4
Cloud Provider: Azure
Run Code Online (Sandbox Code Playgroud)
我还使用外部 IP 地址成功安装了 Istio 作为我的 Ingress 网关。我还为部署服务的命名空间启用了 istio-injection。我看到 sidecar 注入正在成功进行。它正在显现。
NAME READY STATUS RESTARTS AGE
club-finder-deployment-7dcf4479f7-8jlpc 2/2 Running 0 11h
club-finder-deployment-7dcf4479f7-jzfv7 2/2 Running 0 11h
Run Code Online (Sandbox Code Playgroud)
我的 tls 网关
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: tls-gateway
namespace: istio-system
spec:
selector:
istio: ingressgateway
servers:
- port:
name: https
number: 443
protocol: HTTPS
tls:
mode: SIMPLE
serverCertificate: /etc/istio/ingressgateway-certs/tls.crt
privateKey: /etc/istio/ingressgateway-certs/tls.key
hosts:
- "*"
Run Code Online (Sandbox Code Playgroud)
注意:我使用自签名证书进行测试。
我已经申请了以下虚拟服务
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: …Run Code Online (Sandbox Code Playgroud) 我正在尝试做一件我认为很简单的事情。我需要在 docker 桌面的 k8s 环境中收听https://localhost:44301、https://localhost:5002、https://localhost:5003,并使用我的 pfx 文件/密码进行代理指定并通过端口将其转发到侦听特定地址的 Pod(可能是端口 80,无所谓)
该文档令人麻木地复杂,因为它看起来应该是直截了当的。我可以让 pod 运行,我可以使用 kubectl port-forward 并且它们工作正常,但是我无法弄清楚如何以有意义的方式使用 ha-proxy 或 nginx 或其他任何东西来使用 ingress。
有人可以做一个 ELI5 告诉我如何打开它吗?我在 Windows 10 2004 上使用 WSL2 和 Docker 实验性,所以我应该可以访问他们在文档中引用的入口内容,并把它说清楚。
谢谢!
我是微服务的新手,想了解在 Kubernetes 上部署的微服务中实现以下行为的最佳方式是什么:
有 2 个不同的 K8s 集群。微服务 B 部署在两个集群上。
现在如果微服务 A 调用微服务 B 并且 B 的 pod 在集群 1 中不可用,那么调用应该转到集群 2 的 B。
我可以想象通过使用 Netflix OSS 来实现这个功能,但在这里我没有使用它。
另外,暂时将集群间通信放在一边,我应该如何在微服务之间进行通信?
我知道的一种方法是为每个微服务创建 NodePort 类型的 Kubernetes 服务,并在调用微服务中使用 IP 和 nodePort。
问题:如果有人删除了目标微服务的K8s Service怎么办?在重新创建 K8s 服务时,K8s 将随机分配一个新的 nodePort,然后我将不得不返回到我的调用微服务并更改目标微服务的 nodePort。如何与 nodePort 解耦?
我研究了 kubedns,但似乎它只适用于集群。
我对 Istio 和 Kubernetes Ingress 的了解非常有限。这些中的任何一个是否提供了我正在寻找的东西?
抱歉问了一个很长的问题。任何形式的指导都会非常有帮助。
java spring-boot kubernetes microservices kubernetes-ingress
创建了一个 GKE 集群,为互联网连接设置了 cloud-nat。然后我部署了 kubernetes ingress-nginx kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/cloud/deploy.yaml。
到这里一切都很好,但是当我尝试部署时,ingress resource我得到了这个 Error from server (Timeout): error when creating "manifests/backend/service/be-nginx-ingress-serivce.yaml": Timeout: request did not complete within requested timeout 30s。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-resource
namespace: sap
annotations:
kubernetes.io/ingress.class: nginx
spec:
tls:
- hosts:
- mywebname.com
secretName: ingress-tls
rules:
- host: mywebname.com
http:
paths:
- path: /
backend:
serviceName: app
servicePort: 5000
- path: /v1
backend:
serviceName: web
servicePort: 8081
Run Code Online (Sandbox Code Playgroud)
我的清单在公共 GKE 上运行良好,但今天我将其切换为私有,我遇到了这个问题,这是我第一次使用 VPC,任何帮助或指导将不胜感激,谢谢
nginx google-cloud-platform kubernetes google-kubernetes-engine kubernetes-ingress
我有多个服务需要公开到 Internet,但我想为它们使用单个 ALB。
我正在使用最新的AWS Load Balancer Controller,我一直在阅读这里的文档(https://kubernetes-sigs.github.io/aws-load-balancer-controller/guide/ingress/annotations/#traffic-routing ),但我还没有找到关于如何实现这一点的明确解释。
这是设置:
我有 service-a.example.com -and- service-b.example.com。他们每个人在 Amazon Certificate Manager 中都有自己的证书。
在 Kubernetes 中,每个都有自己的服务对象,定义如下(每个都是唯一的):
apiVersion: v1
kind: Service
metadata:
name: svc-a-service
annotations:
alb.ingress.kubernetes.io/healthcheck-protocol: HTTP
alb.ingress.kubernetes.io/healthcheck-port: traffic-port
alb.ingress.kubernetes.io/healthy-threshold-count: '5'
alb.ingress.kubernetes.io/unhealthy-threshold-count: '2'
alb.ingress.kubernetes.io/healthcheck-path: /index.html
alb.ingress.kubernetes.io/healthcheck-interval-seconds: '30'
alb.ingress.kubernetes.io/healthcheck-timeout-seconds: '5'
alb.ingress.kubernetes.io/success-codes: '200'
alb.ingress.kubernetes.io/tags: Environment=Test,App=ServiceA
spec:
selector:
app: service-a
ports:
- port: 80
targetPort: 80
type: NodePort
Run Code Online (Sandbox Code Playgroud)
每个服务都有自己的 Ingress 对象,定义如下(同样,每个服务都是唯一的,并且为每个服务指定了正确的证书):
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: svc-a-ingress
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/group.name: services
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/security-groups: sg-01234567898765432 …Run Code Online (Sandbox Code Playgroud) amazon-web-services kubernetes kubernetes-ingress amazon-eks
我已经使用 Airflow 的 Stable Helm 图表在 AWS 的Elastic Kubernetes 服务上部署了Apache Airflow。我的目标是创建一个 Ingress 以允许其他人通过他们的浏览器访问气流网络服务器 UI。值得一提的是,我正在使用 AWS Fargate 在 EKS 上进行部署。我对 Kubernetes 的经验有点有限,之前我自己也没有设置过 Ingress。
我目前能够通过端口转发(如kubectl port-forward airflow-web-pod 8080:8080)连接到气流网络服务器吊舱。我曾尝试通过 Helm 图表设置 Ingress(此处记录)。之后:
运行kubectl get ingress -n dp-airflow我得到:
NAME CLASS HOSTS ADDRESS PORTS AGE
airflow-flower <none> foo.bar.com 80 3m46s
airflow-web <none> foo.bar.com 80 3m46s
Run Code Online (Sandbox Code Playgroud)
然后运行kubectl describe ingress airflow-web -n dp-airflow我得到:
Name: airflow-web
Namespace: dp-airflow
Address:
Default backend: default-http-backend:80 (<error: endpoints …Run Code Online (Sandbox Code Playgroud) amazon-web-services amazon-elb kubernetes kubernetes-ingress amazon-eks
我有一个 GKE/GCE 入口文件,它有 2 个主机。
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: myfirstdomain # <-------- override this via kustomize
http:
paths:
- path: /abc
backend:
serviceName: abc
servicePort: abc
- path: /def
backend:
serviceName: def
servicePort: def
- path: /ghi
backend:
serviceName: ghi
servicePort: ghi
- host: myseconddomain # <-------- override this via kustomize
http:
paths:
- backend:
serviceName: xyz
servicePort: xyz
Run Code Online (Sandbox Code Playgroud)
我想host通过 kustomize声明这些值,以便我可以host为不同的环境指定不同的值。
我的开发环境覆盖补丁文件如下所示:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: my-ingress …Run Code Online (Sandbox Code Playgroud) overlay kubernetes google-kubernetes-engine kubernetes-ingress kustomize
kubernetes ×10
amazon-eks ×2
nginx ×2
amazon-elb ×1
azure ×1
gitlab-ci ×1
iptables ×1
istio ×1
java ×1
kustomize ×1
overlay ×1
sails.js ×1
spring-boot ×1
ufw ×1