Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support MixedProtocolLBService and clean up Daemonsets on type change. #5205

Merged
merged 1 commit into from
Mar 3, 2022

Conversation

brandond
Copy link
Member

@brandond brandond commented Mar 3, 2022

Proposed Changes

Support MixedProtocolLBService and clean up Daemonsets on type change.

Also add event support to increase visibility of change events.

Types of Changes

enhancement, compatibility

Verification

See linked issues

Linked Issues

User-Facing Change

The embedded ServiceLB LoadBalancer controller now supports mixed-protocol Services, and will clean up daemonsets when the Service type changes.

Further Comments

Example kubectl describe with events from installing Traefik and then converting the Service type from LoadBalancer to ClusterIP:

/ # kubectl describe service -n kube-system traefik
Name:              traefik
Namespace:         kube-system
Labels:            app.kubernetes.io/instance=traefik
                   app.kubernetes.io/managed-by=Helm
                   app.kubernetes.io/name=traefik
                   helm.sh/chart=traefik-10.14.100
Annotations:       meta.helm.sh/release-name: traefik
                   meta.helm.sh/release-namespace: kube-system
Selector:          app.kubernetes.io/instance=traefik,app.kubernetes.io/name=traefik
Type:              ClusterIP
IP Family Policy:  SingleStack
IP Families:       IPv4
IP:                10.43.103.115
IPs:               10.43.103.115
Port:              web  80/TCP
TargetPort:        web/TCP
Endpoints:         10.42.0.5:8000
Port:              websecure  443/TCP
TargetPort:        websecure/TCP
Endpoints:         10.42.0.5:8443
Session Affinity:  None
Events:
  Type    Reason            Age                  From           Message
  ----    ------            ----                 ----           -------
  Normal  UpdatedIngressIP  2m                   svccontroller  LoadBalancer Ingress IP addresses updated: 172.17.0.3
  Normal  UpdatedIngressIP  119s (x2 over 119s)  svccontroller  LoadBalancer Ingress IP addresses updated: 172.17.0.2, 172.17.0.3
  Normal  AppliedDaemonSet  101s (x9 over 2m2s)  svccontroller  Applying LoadBalancer DaemonSet kube-system/svclb-traefik
  Normal  DeletedDaemonSet  34s                  svccontroller  Deleteting DaemonSet kube-system/svclb-traefik

@brandond brandond requested a review from a team as a code owner March 3, 2022 01:42
@brandond brandond force-pushed the mixedprotocolservicelb branch from 8356d06 to 1f990f3 Compare March 3, 2022 01:43
@manuelbuil
Copy link
Contributor

By mixed protocol you mean udp or tcp, right?

@brandond
Copy link
Member Author

brandond commented Mar 3, 2022

@manuelbuil not necessarily; potentially any protocol supported by Kubernetes. I think most if not all only support TCP and UDP though, same as ServiceLB... although Kubernetes itself supports STCP as well.

This is to support a KEP feature that will be enabled by default in 1.24: https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/1435-mixed-protocol-lb

@brandond brandond force-pushed the mixedprotocolservicelb branch from 1f990f3 to 4b88c69 Compare March 3, 2022 17:49
Also add event support to increase visibility of change events.

Signed-off-by: Brad Davidson <[email protected]>
@brandond brandond force-pushed the mixedprotocolservicelb branch from 4b88c69 to 5c7c685 Compare March 3, 2022 22:04
@brandond
Copy link
Member Author

brandond commented Mar 3, 2022

Test flaked; merging:

[�[35mPARALLEL�[m] [Fail] [sig-storage] Downward API volume [It] should update labels on modification [NodeConformance] [Conformance] 
[�[35mPARALLEL�[m] /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/test/e2e/common/storage/downwardapi_volume.go:151

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants