|
| 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