Kubernetes Service in Managed Namespace
#
ClusterIP ServicesClusterIp is als Standard Service-Typ gedacht. Er ist nur innerhalb des Namespaces erreichbar. Sie können http Dienste durch einen Ingress von außen zugreifbar machen.
# Create hello world deploymentapiVersion: apps/v1kind: Deploymentmetadata: name: nginxspec: selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginxdemos/hello ports: - name: http containerPort: 80---# Create service for hello-world deploymentapiVersion: v1kind: Servicemetadata: name: nginxspec: ports: - name: http port: 80 protocol: TCP targetPort: 80 selector: app: nginx type: ClusterIP
#
LoadBalancer ServicesLoadBalancer Services werden durch Ip-Port-Zuweisungen unterstützt. Sie repräsentieren eine feste Ip auf einem festen Port.
#
Erstellen- Menü
Namespace
auswählen - Namespace auswählen in welchen Sie LoadBalancer Service deployen möchten
- Auf das
Ports
Fach am unteren Ende der Detailansicht klicken - Auf
Port-Zuweisung erstellen
klicken, gewünschten Port eingeben und mittelserstellen
bestätigen:- Der Port muss zwischen 1025 und 60000 liefen
- Sollte der ausgewählte Port nicht verfügbar sein, schlagen wir vor einen anderen zu benutzen.
- Nach der Erstellung sollte der Port in der Übersicht zu sehen sein.
- Sie können Ihren Dienst nun wie unten dargestellt erstellen:
apiVersion: apps/v1kind: Deploymentmetadata: name: nginxspec: selector: matchLabels: app: nginx template: metadata: labels: app: nginx # This deactivates the firewall for the given port mayope/web-allowed: allowed spec: containers: - name: nginx image: nginx:1 ports: - name: http containerPort: 80---apiVersion: v1kind: Servicemetadata: name: nginxspec: loadBalancerIP: <<IP>> # The ip from the first column of the table ports: - name: http port: {{PORT}} # The port from the second column of the table protocol: TCP targetPort: 80 selector: app: nginx type: LoadBalancer
Der Service ist verfügbar sobald der Container gestartet ist.
Das Label mayope/web-allowed: allowed
wird benötigt weil jeder Namespace durch eine Firewall abgesichert ist, die externen Traffic außer vom Ingress-Controller blockiert.
Diese Annotation deaktiviert diese Firewall für dieses Pod, also seien Sie vorsichtig was Sie im Internet freigeben.
#
NodePort ServicesNodePort services sind momentan nicht verfügbar und es gibt keine Pläne diese zu implementieren. Sollten Sie jedoch einen speziellen Anwendungsfall haben der nicht anders gelöst werden kann bitten wir Sie ein: Ticket zu erstellen.