为什么人们
当前,我正在尝试在我的kubernetes中设置一个网址
我编写了一项服务,能够连接到dns来解析所有外部URL。
我也定义了Ingress
kind: Ingress
metadata:
name: dnsingressresource
spec:
# tls:
# - hosts:
# - < domain>
# secretName: <tls_secret_name>
rules:
- host: cloud.devlan.xx.xxx
http:
paths:
- path: /mobdev1/auth
backend:
serviceName: service-cas-nodeport
servicePort: 2488
如果我要转到应用程序的URL,则必须编写此
https://cloud.devlan.xx.xxx:2488/mobdev1/auth/login
我试图得到这个
https://cloud.devlan.xx.xxx/mobdev1/auth/login
你知道我怎么能得到它吗?
答案 0 :(得分:0)
您应该为服务指定端口 80,而 targetPort 应该是容器中的端口
deployment.yaml
kind: Deployment
...
spec:
containers:
- name: my-app
image: "my-image:my-tag"
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 2488
protocol: TCP
service.yaml
apiVersion: v1
kind: Service
...
spec:
type: NodePort
ports:
- port: 80
targetPort: 2488
protocol: TCP
name: http
ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
...
spec:
backend:
serviceName: my-service
servicePort: 80
答案 1 :(得分:0)
在nodeport或其他内容中指定应用程序更好吗? 我做了同样的事,但是没有用 该应用程序监听 8443 。
deployment.yaml
kind: Deployment
metadata:
labels:
app: deployment-cas
image: docker-all.xxxx/library/ds-mg-cas:3
imagePullPolicy: Always
name: deployment-cas
ports:
- containerPort: 8443
protocol: TCP
service.yaml
kind: Service
metadata:
labels:
app: svc-cas
name: service-cas-nodeport
spec:
clusterIP: 192.2.0.252
ports:
- name: https-cas
port: 8443
protocol: TCP
targetPort: 8443
ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
spec:
rules:
- host: cloud.devlan.xx.xxx
http:
paths:
- backend:
serviceName: service-cas-nodeport
servicePort: 8443
path: /mobdev1/auth
status:
loadBalancer: {}
当我转到 https://cloud.devlan.xx.xxx/mobdev1/auth 时,我收到一条错误消息,无法连接到...
我忘记了什么吗?
答案 2 :(得分:0)
https://cloud.devlan.xxx.xx/mobdev1/
时
我什么都没有
但是当我去https://cloud.devlan.xx.xx:2388/mobdev1/auth/login
时
它正在工作。
我搜索并阅读了互联网上的文档,但我不明白为什么它无法正常工作...
我在下面的要点中添加了所有配置文件(部署,服务,入口) 我在 nodePort 类型
中https://gist.github.com/zyriuse75/65b7fa60f3100f98eb63f131b2c7d4fb
感谢您的帮助!