# Title: What is a Kuberentes Endpoint, Anyway ? # Authors: Pallavi Jaini, Jay Vyas, Amim Knabben https://github.com/kubernetes/kubernetes/issues/107927 <-- interesting bug w/ endpointSlice Controller when nodes dissapear ? # What is an Endpoint "Slice" ? When kubernetes process the service description and if the service selector matches a pod label, kuberentes automatically creates the endpoints object with same name as service. Taking a look at a fresh cluster, you might notice that there are both endpoints, and endpoint slices for your services: ``` ~  kubectl get services -A NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE default kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9h kube-system antrea ClusterIP 10.96.40.142 <none> 443/TCP 9h kube-system kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 9h ``` ``` ~  kubectl get endpoints -A NAMESPACE NAME ENDPOINTS AGE default kubernetes 172.19.0.7:6443 9h kube-system antrea 172.19.0.5:10349 9h kube-system kube-dns 10.10.0.2:53,10.10.0.3:53,10.10.0.2:53 + 3 more... 9h ``` The same services have corresponding... ``` -> % kubectl get endpointslices -A NAMESPACE NAME ADDRESSTYPE PORTS ENDPOINTS AGE default kubernetes IPv4 6443 172.18.0.2 2m35s kube-system antrea-gllz8 IPv4 10349 172.18.0.3 78s kube-system kube-dns-sfk96 IPv4 9153,53,53 10.10.0.2,10.10.0.3 2m19s ``` When do endpointSlices get made? (look at maxEpPerSlice, will that result in more epslices???) The control plane automatically creates EndpointSlices for any Kubernetes Service that has a selector specified. How can we configure it? Why would we configure it ? ## History # what happens when an endpoint is created? - Sequence diagram - ... # What is the difference between and endpoint and a pod ... # how do endpointSlice controllers work ? # how does the kube-proxy deal w/ endpoints and endpointSlices? # how does KPNG deal w/ endpoints, endpointSlices? # how do Nodes respond to changing endpoints in a cluster # What about CNI providers ? ## NetworkPolicies ? ... ## CNI based proxying ...