NODE
POD INFRASTRUCT.
CONTAINER A
CONTAINER B
POD
KUBERNETES COMPONENTS:
kubelet
kube-proxy
Container Runtime (Docker, rkt, etc)
NODE
kubelet
Kubernetes Master
NODE
kubelet
kube-apiserver
kube-scheduler
kube-controller-manager
https://github.com/kubernetes/kubernetes/blob/master/cmd/kube-controller-manager/app/controllermanager.go#L321
cloud-controller-manager
https://github.com/kubernetes/kubernetes/blob/master/pkg/cloudprovider/cloud.go#L32
kubelet
kube-proxy
Services Part II
Services Part II
Services Part II
Services Part II
Services Part II
kind: Endpoints
apiVersion: v1
metadata:
name: my-service
subsets:
- addresses:
- ip: <pod_1_addr>
- ip: <pod_2_addr>
ports:
- port: 80ENDPOINT
MY_APP_SERVICE_HOST=10.0.0.11
MY_APP_SERVICE_PORT=6379
MY_APP_PORT=tcp://10.0.0.11:6379
MY_APP_PORT_6379_TCP=tcp://10.0.0.11:6379
MY_APP_PORT_6379_TCP_PROTO=tcp
MY_APP_PORT_6379_TCP_PORT=6379
MY_APP_PORT_6379_TCP_ADDR=10.0.0.11Exposes a DNS resolver service
Kubelet tells containers to use that service
my-svc.my-namespace.svc.cluster.local
RESOLVES TO 10.0.0.11my-svc.my-namespace.svc.cluster.local
A-Record
Cluster IP of Service `my-svc`