我在pod上部署了SAS Viya编程。这使SASStudio在端口80上运行。我正在尝试通过下面的yaml文件使用nodeport和Inete公开SAS Studio。但在GCP控制台中,后端服务显示不健康,如果我尝试访问Ip,它会遇到默认后端或找不到页面。我可以使用集群IP和节点IP以及端口号访问服务。
如果我使用LoadBalancer服务而不是入口,那么我可以使用LoadBalancer Ip访问该服务。
使用入口时,后端服务显示为不正常。
我在node Ip和nodeport Ip中使用了curl命令。下面是结果。
[root@k8jumphost doc]# curl -ILS "10.142.0.19:30100"
HTTP/1.1 302 Found
Date: Fri, 01 Feb 2019 07:53:31 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips
Location: http://10.142.0.19:30100/SASStudio
Content-Type: text/html; charset=iso-8859-1
HTTP/1.1 302
Date: Fri, 01 Feb 2019 07:53:32 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips
Location: /SASStudio/
Transfer-Encoding: chunked
HTTP/1.1 200
Date: Fri, 01 Feb 2019 07:53:34 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data:;
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Type: text/html;charset=UTF-8
Content-Language: en-US
Content-Length: 7836
[root@k8jumphost doc]# cat sas-analytics-ingress.yaml
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: sas-programming-ingress
labels:
app: sas-programming
spec:
rules:
- host: sas-programming
http:
paths:
- path: /
backend:
serviceName: sas-programming-svc-nodeport
servicePort: 80
[root@k8jumphost doc]# cat sas-analytics-nodeport.yaml
---
apiVersion: v1
kind: Service
metadata:
name: sas-programming-svc-nodeport
labels:
app: sas-programming
spec:
selector:
app: sas-programming
ports:
- name: http
nodePort: 30100
port: 80
targetPort: 80
- name: cas
nodePort: 30200
port: 5570
targetPort: 5570
type: NodePort
[root@k8jumphost doc]# cat sas-analytics.yaml
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: sas-programming-deployment
labels:
app: sas-programming
spec:
replicas: 1
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: sas-programming
spec:
securityContext:
fsGroup: 1001
hostname: sas-programming
containers:
- name: sas-programming
image: <location of the image>
imagePullPolicy: IfNotPresent
ports:
- containerPort: 5570
- containerPort: 80
env:
- name: CASENV_CAS_VIRTUAL_HOST
value: "sas-programming"
- name: CASENV_CAS_VIRTUAL_PORT
value: "30300"
我怀疑/上的重定向导致了此错误。任何人都可以帮助我,什么应该添加到部署文件来克服这个错误。
我认为您在GCP中的后端不健康这一事实表明您的容器上可能没有健康endpoint。查看https://kubernetes.io/docs/concepts/services-networking/ingress/#loadbalancing.您需要readinessProbe
和livenessProbe
在您的部署yaml中。
具有TLS配置的典型入口如下所示: 发现GLBC正在讨论为GCE入口启用HTTPS后端。文件摘录: 后端HTTPS 对于负载均衡器和Kubernetes服务之间的加密通信,您需要将服务的端口装饰为预期的HTTPS。有一个alpha服务注释用于指定每个服务端口的预期协议。当将协议视为HTTPS时,入口控制器将使用带有HTTPS健康检查的HTTPS后端服务组装GCP L7负载均衡器。“ 不清楚负载均衡
https://kubernetes.io/docs/concepts/services-networking/Ingress/中的入口示例显示,为了指定bancked入口,我们必须指定servicePort和serviceName,例如: 我希望创建具有随机端口的服务,并避免在入口定义中指定它们。有没有ServicePort的替代方案?也许使用服务中分配的端口名称或targetPort?
问题内容: 我遵循了负载均衡器教程:https : //cloud.google.com/container- engine/docs/tutorials/http-balancer 在使用Nginx映像时,当尝试使用自己的应用程序映像时,它工作正常后端切换为不正常。 我的应用程序重定向到/(返回302),但在pod定义中添加了一个: 我的入口看起来像: 服务配置为: 后端健康状况如下: 入口的规
我遵循了负载均衡器教程:https://cloud.google.com/container-engine/docs/tutorials/http-balancer当我使用Nginx映像时工作正常,当我尝试使用我自己的应用程序映像时,尽管后端切换到不健康。 我的应用程序重定向到/(返回302),但我在pod定义中添加了一个livenessProbe: 我的入口看起来像: 服务配置为: 入口中的后端
只有。这些服务到底有什么不同?端口到底做什么?
我正在尝试使用入口公开部署,其中DeamonSet具有hostNetwork=true,这将允许我跳过额外的负载平衡器层,并直接在Kubernetes外部节点IP上公开我的服务。很遗憾,我无法从外部网络访问入口控制器。 我在GCP上运行库伯内特斯版本1.11.16-gke.2。 我将刷新群集设置为: 我运行部署: 然后我创建服务: 和入口资源: 我获取节点外部IP: 检查入口是否正在运行: 然后尝