Service AI Flashcards
Wat is een Service in Kubernetes?
Een Service is een abstractie die een manier biedt om toegang te krijgen tot een set van pods in Kubernetes. Het zorgt voor load balancing en het beheren van de netwerkomstandigheden voor toegang tot de pods.
Welke soorten Services zijn er in Kubernetes?
De vier hoofdtypen van Services in Kubernetes zijn:
- ClusterIP (standaard)
- NodePort
- LoadBalancer
- ExternalName
Wat is een ClusterIP Service?
Een ClusterIP Service maakt de service toegankelijk binnen het cluster via een interne IP-adres. Het is de standaard en meest gebruikte service in Kubernetes.
Hoe werkt een NodePort Service?
Een NodePort Service maakt een poort op elke node beschikbaar, zodat de service van buiten het cluster bereikbaar is via nodeIP:nodePort
.
```yaml
spec:
type: NodePort
ports:
- port: 80
targetPort: 8080
nodePort: 30001
~~~
Wat is het doel van een LoadBalancer Service?
Een LoadBalancer Service maakt gebruik van een externe load balancer (bijvoorbeeld van een cloudprovider) om verkeer naar de pods te verdelen. Dit is handig voor toegang vanaf buiten het cluster.
Wat is een ExternalName Service in Kubernetes?
Een ExternalName Service maakt een DNS-record aan voor een externe resource, zodat je een externe URL kunt gebruiken als een interne service.
```yaml
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: ExternalName
externalName: example.com
~~~
Wat is het doel van een selector in een Kubernetes Service?
De selector van een Service bepaalt welke pods er door de Service worden blootgesteld. Het zoekt naar pods die overeenkomen met de labels in de selector.
```yaml
spec:
selector:
app: my-app
~~~
Wat is het verschil tussen port en targetPort in een Kubernetes Service?
- port: Het poortnummer waarop de Service zelf luistert.
- targetPort: Het poortnummer waarop de applicatie in de pod luistert.
Kun je een Service maken zonder een selector? Wat is het doel?
Ja, je kunt een Service maken zonder een selector, bijvoorbeeld voor externalName of als de Service handmatig pods target via een ander mechanisme zoals een endpoint.
Wat is een headless Service en wanneer zou je die gebruiken?
Een headless Service heeft geen ClusterIP en wordt gebruikt wanneer je geen load balancing wilt en direct toegang wilt tot individuele pods, bijvoorbeeld voor StatefulSets.
```yaml
spec:
clusterIP: None
~~~
Wat is een Endpoint in Kubernetes?
Een Endpoint in Kubernetes is een object dat de IP-adressen en poorten van de pods die bij een Service horen, bijhoudt.
Hoe wordt de DNS-naam van een Service in Kubernetes gevormd?
De DNS-naam van een Service wordt gevormd als service-name.namespace.svc.cluster.local
.
Hoe kun je toegang krijgen tot een NodePort Service van buiten het cluster?
Je kunt toegang krijgen tot een NodePort Service via nodeIP:nodePort
, waarbij nodeIP
het IP-adres van een node is in het cluster en nodePort
de toegewezen poort is.
Hoe wordt een LoadBalancer Service geconfigureerd in een cloudomgeving?
In een cloudomgeving (zoals AWS of GCP) maakt Kubernetes automatisch een externe load balancer aan en wijst deze een extern IP-adres toe voor toegang tot de Service.
Hoe definieer je meerdere poorten voor een Service in Kubernetes?
Je kunt meerdere poorten definiëren door meerdere items in de ports lijst te plaatsen:
```yaml
spec:
ports:
- port: 80
targetPort: 8080
- port: 443
targetPort: 8443
~~~