Skip to content

Commit 2f273d6

Browse files
authored
Merge pull request #45306 from fsmunoz/sig-cloud-provider-spotlight
Add SIG Cloud Provider spotlight article.
2 parents b956c22 + c60616f commit 2f273d6

File tree

1 file changed

+148
-0
lines changed

1 file changed

+148
-0
lines changed
Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
---
2+
layout: blog
3+
title: "Spotlight on SIG Cloud Provider"
4+
slug: sig-cloud-provider-spotlight-2024
5+
date: 2024-03-01
6+
canonicalUrl: https://www.k8s.dev/blog/2024/03/01/sig-cloud-provider-spotlight-2024/
7+
---
8+
9+
**Author**: Arujjwal Negi
10+
11+
One of the most popular ways developers use Kubernetes-related services is via cloud providers, but
12+
have you ever wondered how cloud providers can do that? How does this whole process of integration
13+
of Kubernetes to various cloud providers happen? To answer that, let's put the spotlight on [SIG
14+
Cloud Provider](https://github.com/kubernetes/community/blob/master/sig-cloud-provider/README.md).
15+
16+
SIG Cloud Provider works to create seamless integrations between Kubernetes and various cloud
17+
providers. Their mission? Keeping the Kubernetes ecosystem fair and open for all. By setting clear
18+
standards and requirements, they ensure every cloud provider plays nicely with Kubernetes. It is
19+
their responsibility to configure cluster components to enable cloud provider integrations.
20+
21+
In this blog of the SIG Spotlight series, [Arujjwal Negi](https://twitter.com/arujjval) interviews
22+
[Michael McCune](https://github.com/elmiko) (Red Hat), also known as _elmiko_, co-chair of SIG Cloud
23+
Provider, to give us an insight into the workings of this group.
24+
25+
## Introduction
26+
27+
**Arujjwal**: Let's start by getting to know you. Can you give us a small intro about yourself and
28+
how you got into Kubernetes?
29+
30+
**Michael**: Hi, I’m Michael McCune, most people around the community call me by my handle,
31+
_elmiko_. I’ve been a software developer for a long time now (Windows 3.1 was popular when I
32+
started!), and I’ve been involved with open-source software for most of my career. I first got
33+
involved with Kubernetes as a developer of machine learning and data science applications; the team
34+
I was on at the time was creating tutorials and examples to demonstrate the use of technologies like
35+
Apache Spark on Kubernetes. That said, I’ve been interested in distributed systems for many years
36+
and when an opportunity arose to join a team working directly on Kubernetes, I jumped at it!
37+
38+
## Functioning and working
39+
40+
**Arujjwal**: Can you give us an insight into what SIG Cloud Provider does and how it functions?
41+
42+
**Michael**: SIG Cloud Provider was formed to help ensure that Kubernetes provides a neutral
43+
integration point for all infrastructure providers. Our largest task to date has been the extraction
44+
and migration of in-tree cloud controllers to out-of-tree components. The SIG meets regularly to
45+
discuss progress and upcoming tasks and also to answer questions and bugs that
46+
arise. Additionally, we act as a coordination point for cloud provider subprojects such as the cloud
47+
provider framework, specific cloud controller implementations, and the [Konnectivity proxy
48+
project](https://kubernetes.io/docs/tasks/extend-kubernetes/setup-konnectivity/).
49+
50+
51+
**Arujjwal:** After going through the project
52+
[README](https://github.com/kubernetes/community/blob/master/sig-cloud-provider/README.md), I
53+
learned that SIG Cloud Provider works with the integration of Kubernetes with cloud providers. How
54+
does this whole process go?
55+
56+
**Michael:** One of the most common ways to run Kubernetes is by deploying it to a cloud environment
57+
(AWS, Azure, GCP, etc). Frequently, the cloud infrastructures have features that enhance the
58+
performance of Kubernetes, for example, by providing elastic load balancing for Service objects. To
59+
ensure that cloud-specific services can be consistently consumed by Kubernetes, the Kubernetes
60+
community has created cloud controllers to address these integration points. Cloud providers can
61+
create their own controllers either by using the framework maintained by the SIG or by following
62+
the API guides defined in the Kubernetes code and documentation. One thing I would like to point out
63+
is that SIG Cloud Provider does not deal with the lifecycle of nodes in a Kubernetes cluster;
64+
for those types of topics, SIG Cluster Lifecycle and the Cluster API project are more appropriate
65+
venues.
66+
67+
## Important subprojects
68+
69+
**Arujjwal:** There are a lot of subprojects within this SIG. Can you highlight some of the most
70+
important ones and what job they do?
71+
72+
**Michael:** I think the two most important subprojects today are the [cloud provider
73+
framework](https://github.com/kubernetes/community/blob/master/sig-cloud-provider/README.md#kubernetes-cloud-provider)
74+
and the [extraction/migration
75+
project](https://github.com/kubernetes/community/blob/master/sig-cloud-provider/README.md#cloud-provider-extraction-migration). The
76+
cloud provider framework is a common library to help infrastructure integrators build a cloud
77+
controller for their infrastructure. This project is most frequently the starting point for new
78+
people coming to the SIG. The extraction and migration project is the other big subproject and a
79+
large part of why the framework exists. A little history might help explain further: for a long
80+
time, Kubernetes needed some integration with the underlying infrastructure, not
81+
necessarily to add features but to be aware of cloud events like instance termination. The cloud
82+
provider integrations were built into the Kubernetes code tree, and thus the term "in-tree" was
83+
created (check out this [article on the topic](https://kaslin.rocks/out-of-tree/) for more
84+
info). The activity of maintaining provider-specific code in the main Kubernetes source tree was
85+
considered undesirable by the community. The community’s decision inspired the creation of the
86+
extraction and migration project to remove the "in-tree" cloud controllers in favor of
87+
"out-of-tree" components.
88+
89+
90+
**Arujjwal:** What makes [the cloud provider framework] a good place to start? Does it have consistent good beginner work? What
91+
kind?
92+
93+
**Michael:** I feel that the cloud provider framework is a good place to start as it encodes the
94+
community’s preferred practices for cloud controller managers and, as such, will give a newcomer a
95+
strong understanding of how and what the managers do. Unfortunately, there is not a consistent
96+
stream of beginner work on this component; this is due in part to the mature nature of the framework
97+
and that of the individual providers as well. For folks who are interested in getting more involved,
98+
having some [Go language](https://go.dev/) knowledge is good and also having an understanding of
99+
how at least one cloud API (e.g., AWS, Azure, GCP) works is also beneficial. In my personal opinion,
100+
being a newcomer to SIG Cloud Provider can be challenging as most of the code around this project
101+
deals directly with specific cloud provider interactions. My best advice to people wanting to do
102+
more work on cloud providers is to grow your familiarity with one or two cloud APIs, then look
103+
for open issues on the controller managers for those clouds, and always communicate with the other
104+
contributors as much as possible.
105+
106+
## Accomplishments
107+
108+
**Arujjwal:** Can you share about an accomplishment(s) of the SIG that you are proud of?
109+
110+
**Michael:** Since I joined the SIG, more than a year ago, we have made great progress in advancing
111+
the extraction and migration subproject. We have moved from an alpha status on the defining
112+
[KEP](https://github.com/kubernetes/enhancements/blob/master/keps/README.md) to a beta status and
113+
are inching ever closer to removing the old provider code from the Kubernetes source tree. I've been
114+
really proud to see the active engagement from our community members and to see the progress we have
115+
made towards extraction. I have a feeling that, within the next few releases, we will see the final
116+
removal of the in-tree cloud controllers and the completion of the subproject.
117+
118+
## Advice for new contributors
119+
120+
**Arujjwal:** Is there any suggestion or advice for new contributors on how they can start at SIG
121+
Cloud Provider?
122+
123+
**Michael:** This is a tricky question in my opinion. SIG Cloud Provider is focused on the code
124+
pieces that integrate between Kubernetes and an underlying infrastructure. It is very common, but
125+
not necessary, for members of the SIG to be representing a cloud provider in an official capacity. I
126+
recommend that anyone interested in this part of Kubernetes should come to an SIG meeting to see how
127+
we operate and also to study the cloud provider framework project. We have some interesting ideas
128+
for future work, such as a common testing framework, that will cut across all cloud providers and
129+
will be a great opportunity for anyone looking to expand their Kubernetes involvement.
130+
131+
**Arujjwal:** Are there any specific skills you're looking for that we should highlight? To give you
132+
an example from our own [SIG ContribEx]
133+
(https://github.com/kubernetes/community/blob/master/sig-contributor-experience/README.md):
134+
if you're an expert in [Hugo](https://gohugo.io/), we can always use some help with k8s.dev!
135+
136+
**Michael:** The SIG is currently working through the final phases of our extraction and migration
137+
process, but we are looking toward the future and starting to plan what will come next. One of the
138+
big topics that the SIG has discussed is testing. Currently, we do not have a generic common set of
139+
tests that can be exercised by each cloud provider to confirm the behaviour of their controller
140+
manager. If you are an expert in Ginkgo and the Kubetest framework, we could probably use your help
141+
in designing and implementing the new tests.
142+
143+
---
144+
145+
This is where the conversation ends. I hope this gave you some insights about SIG Cloud Provider's
146+
aim and working. This is just the tip of the iceberg. To know more and get involved with SIG Cloud
147+
Provider, try attending their meetings
148+
[here](https://github.com/kubernetes/community/blob/master/sig-cloud-provider/README.md#meetings).

0 commit comments

Comments
 (0)