Quick recap for network. Details can click the title link or check the official doc.
SVC
1. create
# target port: listening port inside container # port: service internal port # NodePort: expose external port kubectl expose deployment nginx --name nginx-svc --port 8081 --target-port 80 --type [NodePort|ClusterIP] # --dry-run=client -oyaml 2. curl
# on node curl localhost:NodePort # NodePort curl NODE_IP:NodePort # NodePort curl SVC_IP:SVC_Port # ClusterIP # in other pod (ClusterIP) curl SVC_NAME:SVC_Port curl SVC_IP:SVC_Port 3. check
-
endpoints- tells Kubernetes where to forward the traffic from the service.
-
port-forward- Creating a network tunnel between your local machine and the Kubernetes cluster
# endpoints IP -> Pod IP k get endpoints # port-forward kubectl port-forward TYPE/NAME LOCAL_PORT:REMOTE_PORT Ingress
1. Yaml File
Notice:
ingressClassName: if there is noingressclass, create one first, if no IngressClass exists, the ingress resource will not be handled by any controller, and your routes won't work. Pls check official doc
spec: ingressClassName: nginx # used for ingress controller rules: - host: "foo.bar.com" # domain name http: paths: - pathType: Prefix path: "/bar" # http://domain/path backend: service: name: service1 # svc port: number: 80 # svc port 2. Check
Pod IP -> endpoint IP -> ingress IP
# domain name should add into /etc/hosts file with the ingress IP curl DOMAINNAME:SVC_PORT NetworkPolicy
1. Fields
- act on pods:
namespacepodSelector
- type:
ingress.from&egress.to - traffic flow source/destination pods
namespaceSelectorpodSelectorports
and the yaml file here.
Notice:
Cross Node DNS should add the full name in Fully Qualified Domain Name (FQDN) format for a service:
<service-name>.<namespace-name>.svc.cluster.local
more details check official doc
Top comments (0)