Ich habe eine YAML-Datei mit drei Bildern in einem Pod erstellt (sie müssen miteinander über 127.0.0.1 kommunizieren). Es scheint alles zu funktionieren. Ich habe in der YAML-Datei einen Knotenpunkt definiert.Kubernetes nodeport funktioniert nicht
Es gibt einen Entfaltungs definiert applications
Es enthält drei Bilder:
- Kontakte-db (A MySQL Datenbank)
- Front-End (einen Winkel Website)
- net-Kern (Eine API)
Ich habe drei Dienste definiert, einen für jeden Container. Dort habe ich den Typ NodePort
definiert, um darauf zuzugreifen.
So abgerufen ich die Dienste die Portnummern zu erhalten:
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
contacts-db 10.103.67.74 <nodes> 3306:30241/TCP 1d
front-end 10.107.226.176 <nodes> 80:32195/TCP 1d
net-core 10.108.146.87 <nodes> 5000:30245/TCP 1d
Und ich navigieren in meinem Browser zu http: //: 32195, und es hält nur Laden. Es verbindet sich nicht. Dies ist die vollständige Yaml-Datei:
---
apiVersion: v1
kind: Namespace
metadata:
name: three-tier
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: applications
labels:
name: applications
namespace: three-tier
spec:
replicas: 1
template:
metadata:
labels:
name: applications
spec:
containers:
- name: contacts-db
image: mysql/mysql-server #TBD
env:
- name: MYSQL_ROOT_PASSWORD
value: quintor
- name: MYSQL_DATABASE
value: quintor #TBD
ports:
- name: mysql
containerPort: 3306
- name: front-end
image: xanvier/angularfrontend #TBD
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 80
- name: net-core
image: xanvier/contactsapi #TBD
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 5000
---
apiVersion: v1
kind: Service
metadata:
name: contacts-db
labels:
name: contacts-db
namespace: three-tier
spec:
type: NodePort
ports:
# the port that this service should serve on
- port: 3306
targetPort: 3306
selector:
name: contacts-db
---
apiVersion: v1
kind: Service
metadata:
name: front-end
labels:
name: front-end
namespace: three-tier
spec:
type: NodePort
ports:
- port: 80
targetPort: 80 #nodePort: 30001
selector:
name: front-end
---
apiVersion: v1
kind: Service
metadata:
name: net-core
labels:
name: net-core
namespace: three-tier
spec:
type: NodePort
ports:
- port: 5000
targetPort: 5000 #nodePort: 30001
selector:
name: net-core
---
Sie können auch sehen, welche Dienste tatsächlich von Endpunkten (Pods) mit 'kubectl get endpoints' unterstützt werden –