我在GCP中配置了Kubernetes集群,如下所示,
进入。亚马尔
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
annotations:
kubernetes.io/ingress.class: "gce"
kubernetes.io/ingress.global-static-ip-name: "ip-name"
ingress.kubernetes.io/rewrite-target: "/"
kubernetes.io/ingress.allow-http: "true"
spec:
backend:
serviceName: default-http-backend
servicePort: 80
rules:
- http:
paths:
- path: /myService/*
backend:
serviceName: my-service
servicePort: 80
应用程序。亚马尔
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: my-service
labels:
app: my-service
spec:
replicas: 3
template:
metadata:
labels:
app: my-service
spec:
containers:
- image: gcr.io/project_name7/my-service:6.0
imagePullPolicy: Always
name: my-service
ports:
- containerPort: 4000
readinessProbe:
httpGet:
path: /healthz
port: 4000
periodSeconds: 1
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 10
---
apiVersion: v1
kind: Service
metadata:
name: my-service
labels:
k8s-app: my-service
spec:
type: NodePort
ports:
- name: my-service
port: 80
protocol: TCP
targetPort: 4000
selector:
app: my-service
默认后端。亚马尔
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: default-http-backend
spec:
replicas: 1
template:
metadata:
labels:
app: default-http-backend
spec:
terminationGracePeriodSeconds: 60
containers:
- name: default-http-backend
# Any image is permissable as long as:
# 1. It serves a 404 page at /
# 2. It serves 200 on a /healthz endpoint
image: gcr.io/google_containers/defaultbackend:1.4
livenessProbe:
httpGet:
path: /healthz
port: 8080
scheme: HTTP
initialDelaySeconds: 30
timeoutSeconds: 5
ports:
- containerPort: 8080
resources:
limits:
cpu: 10m
memory: 20Mi
requests:
cpu: 10m
memory: 20Mi
---
kind: Service
apiVersion: v1
metadata:
name: default-http-backend
spec:
selector:
app: default-http-backend
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: NodePort
我的健康检查很好,负载平衡器已经启动并运行。我也可以点击默认后端。但是当我试着打的时候,
GET http://ingress-ip/myService/api/test
我在404状态码的postman中发现以下错误,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /myService/api/test</pre>
</body>
</html>
但是API在服务中可用,当我将服务从NodePort切换到LoadBalancer时,我可以使用LoadBalancer IP访问API。有人能帮我解决这个问题吗?如何重置通配符或如何访问我的API?
GCE入口不支持入口。库伯内特斯。io/rewrite target,因此您的应用程序pod接收的路径为表单myService/api/test,并因此返回HTTP/404。
我有一个服务: 和一个入口路径: 但保存入口返回: 同步期间出错:评估入口规范时出错:服务“default/ExternalName”类型为“ExternalName”,应为“NodePort”或“LoadBalancer” GCE入口应支持外部名称服务(或者至少没有易于查找的文档表明存在其他错误),并且该错误很难追踪。
我的目标是通过GCE入口过滤nginx提供服务的Kubernetes引擎上部署的angular应用程序的IP地址的访问。 但是在我的nginx上remote_addr不对。 $LB_IP是此处定义的IP:kubernetes。io/入口。全局静态ip名称:app angular 我在nginx上使用set_real_ip_from来设置X-Forwarded-For的ip 原始ip在X-Forwa
我有一个API,它允许传入任何任意路径,例如所有这些: 是有效路径。我试着这样描述: 但是https://generator.swagger.io在路径中编码斜线,所以不起作用。那么有没有办法用Swagger来描述我的API呢?
问题内容: Logstash似乎不读取通配符的路径,这是我的配置文件 问题答案: 通过用反斜杠替换反斜杠,我能够解决此问题。
问题内容: 我正在运行应该执行方法的Shell脚本: 在这一点上,我得到这个异常: 这是因为弹簧罐位于另一个文件夹中。所以我更改了脚本: 但是,使用此脚本无法找到com.example.ClassTest。关于这个问题有什么想法吗? 提前致谢 问题答案: Java类路径通配符扩展不常见。 从文档: 了解类路径通配符 类路径条目可以包含基本名称通配符,这被认为等效于指定目录中所有扩展名为.jar或.
我有以下入口设置: 当我点击时,我被重定向到,并带有NGINX 404未找到。 根据日志,可以看到< code>grafana窗格被查询命中: logger = context traceID = 0000000000000000000000000000 userId = 0 orgId = 0 uname = t = 2022-10-13t 16:19:57.989170173 z level