#29 November 14, 2018

Workloads API and KubeCon, with Janet Kuo

Hosts: Craig Box, Adam Glick

On the eve of the first KubeCon in China, your hosts talk to co-chair and Google software engineer Janet Kuo about the program, and her work with SIG Apps.

Do you have something cool to share? Some questions? Let us know:

News of the week

ADAM GLICK: Hi, and welcome to the "Kubernetes Podcast from Google." I'm Adam Glick.

CRAIG BOX: And I'm Craig Box.

[MUSIC PLAYING]

ADAM GLICK: Greetings from China.

CRAIG BOX: Hello, ni hao.

ADAM GLICK: Hey, Craig. Great to actually be in the same room this week. We're both here in China. So greetings to the listeners from Shanghai.

CRAIG BOX: It is a pleasure to be here in a very tall building. I'm told that the hotel I'm staying at is the second-highest hotel in the world.

ADAM GLICK: Wow. Begging the obvious question, what is the first?

CRAIG BOX: It is the Ritz Carlton in Hong Kong. That's one of those things where it's not so much how tall the building is. It's how high up the building they chose to put the hotel.

ADAM GLICK: Aha.

CRAIG BOX: There are hotels in the Burj Khalifa in Dubai, but they're not at the top.

ADAM GLICK: I will say that I'm incredibly impressed at the architecture here in Shanghai. There is an amazing diversity of different building styles and architecture, and much of the skyline is striking.

CRAIG BOX: It is. It is beautiful when you can see it. There's been a little bit of cloud the last couple of days. So hopefully, we're going to get some picturesque views of the Shanghai skyline.

ADAM GLICK: Let's get to the news.

[MUSIC PLAYING]

CRAIG BOX: VMware announced last week that it had acquired Kubernetes company Heptio. VMware are positioning the acquisition as bolstering its credentials in the Kubernetes space and adding capabilities to its pivotal offerings. They also announced their rebranding of their VMware Kubernetes Engine beta as VMware Cloud PKS.

According to their investors, Heptio had a blue chip array of Fortune 500 customers for their Heptio Kubernetes service, including three of the four largest retailers in the world, four of the five largest telcos in the US, and two of the six largest financial services companies in the US. VMware have acquired all of this as well as two of the co-founders of the Kubernetes project.

We reached out to Heptio CTO Joe Beda, who we talked to in episode 12. And he said, "Just assure folks that we are going to continue to contribute to both Kubernetes and our open-source projects."

ADAM GLICK: Cisco announced that they have now signed a deal with AWS to enable their technology to work with AWS's Kubernetes service. AWS joins Google Cloud and Azure as the third company to sign a hybrid deal with Cisco. The deal is designed to allow customers to write their applications for Kubernetes, deploy them on premises with Cisco hardware and software, and then connect to the cloud for access to Kubernetes applications hosted there.

Customers can use Cisco's UI to provision clusters in either location, and there is integration with AWS's user management service. The on-premises software is priced on a subscription basis starting around $65,000 per year for an entry-level configuration.

CRAIG BOX: Kontena launched version 2.0 of the Pharos Kubernetes distribution. The Finnish startup says they have focused on easy and reliable upstreamed Kubernetes while adding features such as backup, storage management, and a web-based UI. A commercial version has also been announced. Given the events of the last fortnight, we expect them to announce their company's acquisition by the end of this episode.

ADAM GLICK: Nabla Containers have been released as version 0.2. Nabla are an OCI-compliant container runtime designed to restrict the access the container has to the host OS, thus restricting attacked vectors as a way to increase container isolation and application security. This latest release decreases container startup time and improves memory density.

CRAIG BOX: More articles and series we've been watching. This week's Dominik Tornow and Andrew Chen post is a formal decomposition of the Kubernetes API server into something called alloy specification language. And this week, Steven Acreman's comparison spreadsheet is on CNI plugins for Kubernetes networking.

ADAM GLICK: The CNCF posted a handy guide to their various projects and what they do called "The Beginner's Guide to the CNCF Landscape." The blog is a great way to help you learn about some of the CNCF projects that you might not be aware of and what stage they're in within the CNCF. So if you aren't sure what Telepresence Falco, or Tuf are, check out the blog post in the show notes to get up to speed.

CRAIG BOX: Finally, if you're going to attend KubeCon in Seattle, don't forget to register for what will either be the most brilliant or most tone deaf piece of vendor marketing of all time, IceCubeCon. Yes, Mesosphere want to invite you to hear rap pioneer and NWA member Ice Cube in a private concert for KubeCon attendees. Please tweet us your best Ice Cube puns for reading in next week's episode.

ADAM GLICK: And that's the news.

[MUSIC PLAYING]

Janet Kuo is a software engineer with Google Cloud focusing on Kubernetes SIG apps. She's the co-chair of the next three KubeCon events, including this week's event here in Shanghai and the upcoming events in Seattle and in Barcelona in 2019. Welcome to the show, Janet.

JANET KUO: Thanks for having me.

ADAM GLICK: When did you start working with Kubernetes?

JANET KUO: I started working with Kubernetes in 2015. That's my first project in Google. I remember I was having a phone conversation with Tim Hockin, that you all know, and he told me about this new container orchestrator, Kubernetes, and how great it is and how it will change how everyone builds their applications. And I decided to sign the offer with Google because of that.

ADAM GLICK: Awesome choice.

CRAIG BOX: Do you feel that it has changed everything? Was he correct?

JANET KUO: Yeah, I think so. But I didn't expect Kubernetes to be so popular in so short a time.

CRAIG BOX: Well, your day job is working predominantly with the SIG Apps crew, and you've been involved and the workloads APIs. An area that we've interacted in the past was the process of moving the APIs to GA. For those who aren't familiar, what are the workload APIs, and what was the process of getting them to production readiness?

JANET KUO: Workloads APIs are the APIs that allow you to deploy your applications to Kubernetes-- for example, Deployment, StatefulSet, Jobs, and DaemonSet, things like that. And most of the users use Kubernetes through those APIs.

So in order to move those APIs to GA, we need to make sure that we won't break backwards compatibility. And we also need to make sure all those APIs have consistent behavior and they have complete features that most people need that fit their business needs. For example, we need to make sure that all the APIs can do rolling updates.

CRAIG BOX: Right.

JANET KUO: And they have similar fields and consistent behavior. So, in order to do that, we need to roll out new features and test it in the wild. And then, if we want to make some changes, we need to make another release. For example, we shift a feature from alpha to beta. And then, we make sure that we won't make any breaking changes. And then, we can move them all to GA at the same time.

CRAIG BOX: OK. So they all moved to GA in the 1.9 release?

JANET KUO: Yep.

CRAIG BOX: What has your team been working on since then?

JANET KUO: Since then, we've focused more on other stuff-- so run workloads API. For example, I work on garbage collection because I saw some missing pieces in garbage collections in Kubernetes. For example, I saw a lot of users, they create jobs in Kubernetes that's for batch workloads. But they may create thousands or millions of jobs, but there's no way for you to clean up those jobs.

CRAIG BOX: When you create a job and it runs to completion, would it stay around? What objects would exist after the job had completed?

JANET KUO: The jobs will be there.

CRAIG BOX: Right.

JANET KUO: And the pods. And that's associated with the jobs.

CRAIG BOX: But they'd be in a terminated state, for example?

JANET KUO: Yeah.

CRAIG BOX: OK.

JANET KUO: So for 1.12, I launched an alpha feature for you to clean up the jobs. And I also wrote a proposal for other resources-- for example, cleaning up config maps and secrets after they are no longer being used.

CRAIG BOX: How does the system know when it's no longer being used?

JANET KUO: In the proposal, I want for a controller to watch other resources and to figure out who is referencing those config maps and secrets. And figure out, if they're no longer needed, then we will set a TTL in the config map or secret. And after that times out, they will be cleaned up.

CRAIG BOX: So if I'm running a job and it has run to completion, I might want to be able to look at the logs for those pods for a period, for example. Can I define the period before the garbage collection kicks in for those objects?

JANET KUO: Yeah. So for job cleaning up, you can also use the TTL and set it in the job.

CRAIG BOX: OK. And Google worked a lot on the concept of an application CRD, or a description for defining what it means to be an application that runs on top of Kubernetes. What's that situation?

JANET KUO: So an application CRD is a way for you to define applications. And it's easier for you to put the metadata in it-- for example, the icon of the applications and the developer of that application. And also, it's a way for you to list your application. For example, if you have a deployment and a service in your app, how do you cleanly list it in kubectl the CLI.

So with application CRD, it's the root of all your resources. So you can just kubectl get apps, and you'll see it. And for cleaning up, you can also use that for cleaning up. So you can kubectl delete apps, and you would be cleaned up. And you can also use application CRD to show your app in the dashboard.

CRAIG BOX: Why was this built as a CRD and not, perhaps, as a built-in primitive?

JANET KUO: We proposed it as a built-in resource to SIG architecture. But in the end, we decided that it's better to build this outside of Kubernetes. And if it's really necessary, then we can move it to a built-in API in the future.

ADAM GLICK: How did you get involved in KubeCon?

JANET KUO: A lot of people ask me this question. And actually, Dan Kohn, the CNCF director, he wrote me an email and asked me if I'm interested to be the co-chair of KubeCon.

ADAM GLICK: So you were sought out for the role?

JANET KUO: Yeah.

ADAM GLICK: Congratulations.

JANET KUO: Thanks.

ADAM GLICK: We spoke to your co-chair, Liz Rice, back in an earlier episode. What's it like working with Liz?

JANET KUO: It's fantastic. Liz is always very excited about working on KubeCon stuff, and she also helped me onboard on how everything is going in KubeCon and how to select talks and things like that.

ADAM GLICK: One of the interesting things about how the events are set up is that you stagger the co-chairs so that people are able to mentor each other as part of the process. What did you learn from former chair's experience-- Liz worked on the last KubeCon Europe event-- that helped you build a better experience here in Shanghai?

JANET KUO: Based on her experience running the Copenhagen conference, we did a lot of improvement on the process and on how to select talks and how to improve the keynote. And we also got a few feedback from the Copenhagen audience, and we tried to incorporate all the feedback. And based on that, we improved the future conferences.

ADAM GLICK: What kind of improvements did you make based upon both the former experiences and you mentioned feedback that you got from attendees?

JANET KUO: We decided to have less keynotes so that people can have more breakout sessions. They can have more time for that. And also, we want to include more end user stories. So we have more user studies track. And also, we invited more maintainer's track-- the SIG working group and CNCF project intro and deep dive sessions and things like that.

CRAIG BOX: As we talk to you, it's right before the opening of KubeCon here in Shanghai. This is the first event in China, and it will be the first event with live translation. What things have you put in the program specific for the Chinese audience? So how has this been different, perhaps, than some of the events that previous co-chairs have put together?

JANET KUO: The attendees might notice that, on the schedule website, all the sessions are translated. You can see both the English version and the Chinese version of the talk. But we didn't specify which language will be used on the page. And so, in each session, you can have a headphone to get the live translation, and each speaker is free to choose whichever language they feel comfortable to use.

CRAIG BOX: That's really helpful to know because I was quite worried about having to learn Chinese in the next day and a half. [LAUGHS] What have you learned about the China and Asian markets based on the submissions? Obviously, your involvement has been looking at what people have put through rather than designing the conference proper. But in your piece, what have you learned personally about what it's like here?

JANET KUO: I learned a lot of interesting uses of Kubernetes in China. For example, I have seen talk submissions for running Kubernetes for genetic technology and also for edge, and a lot of AI. I remember there is a talk about managing bikes. So that's all very interesting.

CRAIG BOX: Full transparency. The reason I submitted for this KubeCon was I've never been to China before. I've been here a couple of days now. It's a really interesting place. But what can I expect from this event perhaps different from what I might have expected from the Europe and American events that we've attended in the past?

JANET KUO: I expect this event to be a bit different than others. And the first is that this is the first in Asia, so the attendees might be very different from the other two events. And also, a lot of local people are using Kubernetes. And it's a totally different ecosystem and a lot of interesting uses-- maybe something we can learn from there.

CRAIG BOX: And in terms of attendees and sponsors, how many attendees will there be at the event?

JANET KUO: We are looking to have 1,000 people.

CRAIG BOX: That's a lot for a first event.

JANET KUO: Yeah.

CRAIG BOX: So you all remember back in the day, I never got to the first KubeCon in London. I'm sure it was probably like 150 people, but I was out of town that day. So for shame.

ADAM GLICK: You could have been 1% of the attendees.

CRAIG BOX: I could have been-- the 1%. Given this is the first event in the new market, were you surprised by the number of submissions that you received to the CFP for this? Was it more or less than you might have expected?

JANET KUO: Yeah. Definitely there a lot of submissions than I expected. And this is also the first time I do CFP review for all the other KubeCon events. And I would say it's a long process. It takes a lot of time to go through all those submissions-- and a lot of interesting submissions and uses.

ADAM GLICK: So having taken a look at the submissions that you got for this event-- and I believe you're done selecting submissions for the Seattle event next month as well, but Barcelona's coming up next year-- what would be your recommendations for people who are looking to come and speak in areas where you're looking for interesting talks to be submitted that there might not always be a lot of talks that necessarily come in that people don't realize, that people want to hear about?

JANET KUO: If you're an end user of Kubernetes, I would encourage you to make a submission because we want to hear the stories from the users. That's always the most interesting thing for us. And also, we favor the talks that are original, that's not given anywhere-- not something that's already being told over and over.

And also, if you have some interesting uses of Kubernetes or you have a site or project that's open sourced that's standing on top of Kubernetes, you can also submit that. And I've heard some people are curious, if they are a first-time speaker, would it be a disadvantage for them to get accepted? But it's actually not because we encourage first-time speakers to make submissions.

CRAIG BOX: Taking off your conference organizer hat and putting your SIG Apps hat back on, you're also hosting a birds of a feather session, or a breakout, at this event. What's that?

JANET KUO: I'm also hosting SIG Apps intro and deep dive sessions. So for intro, I'll give the audience an overview of what SIG Apps even is and how to get involved and what's the scope of SIG Apps.

And for deep dive, it will be an open discussion. Like, you can come to ask any question you have. Or you have some feature requests, you can come to the deep dive.

CRAIG BOX: Is there anything in particular that you would like to see in a talk-- not for the conference, but to say like something cool someone has done with apps or with the workload, something related to the work in particular that you do?

JANET KUO: I'd like to see some more maybe end-to-end stories. For example, how do you use a different stack of tools to build your app from code to production? And which projects you pick and how do you integrate them? What are the paint points you have, things like that? That would be interesting to me.

ADAM GLICK: As someone who's working on the project, what are you most excited to see in terms of where Kubernetes is going in the future? I know, at the last few KubeCons, there's been a lot of discussion about kind of what's next for Kubernetes. What are you most excited to see come next?

JANET KUO: I start seeing more and more people customizing Kubernetes and extending on top of Kubernetes. So I expect to see more of that. And also, I think conformance is also very important. Although people might not find it interesting, it's important for the users to get consistent behavior across different providers. So that's also important for me.

CRAIG BOX: All right, Janet. Thank you very much for joining us today.

JANET KUO: Thank you.

CRAIG BOX: You can find Janet on the keynote stage at the three upcoming KubeCon events or on Twitter @janet_kuo, K-U-O.

[MUSIC PLAYING]

ADAM GLICK: Thank you for listening. As always, if you enjoyed this show, please help us spread the word and tell a friend. If you have any feedback for us, you can find us on Twitter @KubernetesPod, or reach us by email at kubernetespodcast@google.com.

CRAIG BOX: If you're quick at listening, you can still catch us on the show floor at KubeCon Shanghai. If not, do check out our website with show notes and transcriptions at KubernetesPodcast.com Until next time, take care.

ADAM GLICK: Catch you next week.

[MUSIC PLAYING]