我的入口如下。
kubectl获取ING test -ingress -o yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"extensions/v1beta1","kind":"Ingress","metadata":{"annotations":{"kubernetes.io/ingress.class":"tectonic"},"name":"test-ingress","namespace":"nstest"},"spec":{"rules":[{"host":"test.nstest.k8s.privatecloud.com","http":{"paths":[{"backend":{"serviceName":"test","servicePort":8080},"path":"/"}]}}]}}
kubernetes.io/ingress.class: tectonic
creationTimestamp: 2018-03-27T17:57:02Z
generation: 1
name: test-ingress
namespace: "nstest"
resourceVersion: "19985087"
selfLink: /apis/extensions/v1beta1/namespaces/nstest/ingresses/test-ingress
uid: 4100bd04-31e8-11e8-8f7b-5cb9018ebebc
spec:
rules:
- host: test.nstest.k8s.privatecloud.com
http:
paths:
- backend:
serviceName: test
servicePort: 8080
path: /
status:
loadBalancer: {}
我的服务如下,
kubectl获取SVC测试-O yaml
apiVersion: v1
kind: Service
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app":"test"},"name":"test","namespace":"nstest"},"spec":{"ports":[{"port":8080,"protocol":"TCP","targetPort":8080}],"selector":{"app":"test"}}}
creationTimestamp: 2018-03-27T17:57:02Z
labels:
app: test
name: test
namespace: "nstest"
resourceVersion: "19985067"
selfLink: /api/v1/namespaces/nstest/services/test
uid: 40f975f3-31e8-11e8-8f7b-5cb9018ebebc
spec:
clusterIP: 172.158.50.20
ports:
- port: 8080
protocol: TCP
targetPort: 8080
selector:
app: test
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
豆荚运行良好。这怎么了?为什么从入学到服务的路由不起作用。
访问Ingress端点的错误,
Ingress Error No healthy backends could be found. Check pod liveness probes for more details.
谢谢,
您应该在服务规格中给出端口一个"名称",并在入口中参考它:
---
apiVersion: v1
kind: Service
metadata:
name: myApp
spec:
selector:
app: myApp
ports:
- name: http
port: 80
targetPort: 80
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: myApp
spec:
rules:
- host: myapp.domain.com
http:
paths:
- path: /
backend:
serviceName: myApp
servicePort: http
在dockerfile中,您需要导出一个端口(例如,服务器正在侦听8080(:
EXPOSE 8080/tcp
在部署中,您需要将containerPort
指定为8080。