Watch this Ask the Expert session to learn what Kubernetes really is and why you should know about it. We will help you establish a mental model of Kubernetes you can draw on and clarify related terminology and concepts.
Watch the webinar
You will learn:
What Kubernetes is from a functional view.
How to think about and understand Kubernetes’ model.
The basic terminology and approach that Kubernetes uses to manage workloads.
Why Kubernetes is needed and why it is so popular.
The questions from the Q&A segment held at the end of the webinar are listed below and the slides from the webinar are attached.
Q&A
Could you talk a little more about the purpose and relationship between Terraform, Docker and Kubernetes?
Terraform is about provisioning instances of infrastructure and such. It’s a way to say I need a node that looks like this or I need a system that looks like that. Kubernetes then is what we would run on.
For example, you might have terraform that would actually provision the system on a cloud provider, set up the AWS backends or the different pieces in there, too Kubernetes then would be the application that runs on.
Docker is one way to create containers and to set them up. It is used separately from Kubernetes. When we talk about Kubernetes for talking about again that way of being able to orchestrate and run lots of containers all at once through the pods and manage those.
So, Terraform is more about being able to provision the infrastructure, it's just finding what the infrastructure should look like the systems that you set up, for example in a cloud provider, Kubernetes then is the application that would run on those that allows us to manage the containers and the containers themselves. Docker is a separate application that can be used to create and work with those.
How can Kubernetes be used in supply chain?
Where we typically think about the value that Kubernetes brings in is if you're running these containerized applications like the bio for something, you have your applications working there, and Kubernetes supplies that stability and that ability to automatically update and deploy your applications, or just scale up and down.
Probably in the supply chain, you would really get more into the ability, for example of scaling up and I talked about the notion of like a retail or who needs to be able to have a broader back end of applications of a larger scaling up of them to support the holiday rush, for example, and then be able to scale back down afterwards. Kubernetes gives you that management there, so in that sense it can really help your supply chain and being able to expand that you can add an additional nodes, for example, if you need additional infrastructure there that then allows more things to be scheduled. You could schedule in different availability zones. So, it really gives you a lot more flexibility in being able to manage these large applications that are key to the supply chain they're running, and being able to manage their deployments and all the other pieces that we talked about.
What are the micro APIs that are used?
Kubernetes has its own APIs that it uses. It has groups of APIs, so there are API groups for services, deployments and so on that go like from V1, beta1, those kinds of things. So there are kind of groupings or families of APIs that are used in Kubernetes. And you always have to, when you're finding a Kubernetes object, one of the first pieces you have to do is say which family of the APIs is it defining it to?
So it's just a way of kind of versioning the functionality within Kubernetes. We also talked about microservices in there and micro services are the most common type of workload I'd say that we're running in Kubernetes. And of course, micro services themselves are small applications running particular functions that talk typically through what we call rest API interfaces back and forth.
Performance-wise, is there a decrease if we run fast in a container instead of straight on a virtual machine?
We've really been working on the performance things here. I don't think it's going to be about the performance really of SAS there. What we've done with SAS is optimizing it more to run as a containerized applications. You know, probably what you get into more is kind of on some of the cloud backends, making sure things are set up right with that. So we've done a lot of work to optimize performance for that, so when we look at it and as we're scaling it, performance shouldn't be an issue.
Can Kubernetes work on AIX or IBM operating system? And could we use Kubernetes for the installation of SAS Viya 4?
Kubernetes will run on any kind of Linux-based operating system. Container functionality takes advantage of functionality has been in the Linux systems for a long time there. So, you should be able to run Kubernetes pretty much on any system there. There's been work around for containers and such on Windows system as well, but it's not that far along. So, as long as you're talking about something that's like a Linux-based system, you should be pretty good to go.
We have deployment instructions on how you deploy Viya 4 on Kubernetes. Viya 4 is intended to run on Kubernetes and so yes, you can certainly deploy it on there. That's similar to how we have operating systems in the past. You almost might think of Kubernetes as being like the operating platform for Viya 4 you’re required to run it on Kubernetes. We do have both a manual approach where you can follow a set of steps to deploy Viya 4 on there. We also have what's called an operator, a fast deployment operator, which is a way that's automated to be able to deploy it on Kubernetes. So, if you have someone who's a Kubernetes admin there, they can work with the operator to automatically deploy it, or they can go through the set of steps that we document in the deployment guide to just to deploy it on there.
Is the current version of SAS grid able to be run on Kubernetes?
A new SAS Viya product, SAS Workload Management, is targeted to be released with LTS 2021.2 in November. It brings forward SAS Grid Manager capability to Kubernetes-based SAS Viya deployments.
Could you maybe explain how permanent storage integrates with the pods?
This is beyond the scope of what can be easily covered here, but Kubernetes has the concept of two API resources for dealing with storage – persistent volumes (PVs) and persistent volume claims (PVCs). The basic idea is that PVs are storage in the cluster that has been provisioned by an administrator or dynamically. And PVCs are requests for PVs that match desired storage criteria. Kubernetes objects can use PVCs to request storage with certain characteristics and Kubernetes will try to match the request with an available PV.
From a SAS Administrator prospective, where the Cloud Providers handle all of the K8s functionality and features, How much of this information is required for SAS folks, when it comes to troubleshooting Deployment Issues/Performance/stability/...etc?
SAS Viya provides SAS Viya Operations which you can optionally deploy into your Kubernetes cluster to provide monitoring and logging capability for SAS Administrators who are unfamiliar with Kubernetes.
What is the relationship with Ansible for Viya deployment?
While Ansible was used for automating earlier versions of SAS Viya (3.x), the more recent Kubernetes-based SAS Viya leverages industry-standard Kubernetes techniques/commands for deployment.
Does SAS use Kubernetes when running these sessions and presentations/courses?
Not that I am aware of.
All the Kubernetes structure seems to be behind the scenes for users. Do users actually interact with Kubernetes, and if so, how?
If we are talking about Viya, the Kubernetes structure is indeed behind the scenes for end users. In fact, SAS Administrators do not need to be aware of the Kubernetes infrastructure. The documentation calls out a new “Kubernetes Administrator” role which highlights the tasks to be done by a Kubernetes-savvy administrator. These tasks typically involve deployment, updates, maintenance, and tenant administration (for multi-tenant environments).
For Kubernetes in general, users typically interact with it via the “kubectl” command line interface or something that talks to the Kubernetes API.
What is the biggest implication in terms of moving SAS to Kubernetes, as opposed to using it on a server, or desktop? From the end-user perspective of using SAS studio in a browser, how different is the experience from the server version?
The biggest implication is in the value Kubernetes brings w.r.t. easing the burden of maintaining the complex collection of services associated with a SAS Viya deployment. This includes ensuring availability, automatic scaling, and automated updates. Moving SAS from a server or desktop to Kubernetes makes the deployment truly cloud-native. From the SAS Studio end-user perspective, the experience is not changed beyond the fact that new SAS Studio capabilities are being introduced solely in the version delivered with Kubernetes-based SAS Viya.
Containers are often compared to VMs as being more efficient, but then containers often run on VMs and seem lose those advantages. Should we stop making this comparison?
The comparison should really be about whether an application has been containerized (running in a container) vs running natively on a system. Whether a container is running on a VM or a physical system is largely not consequential these days. But an application running inside of a container, versus running directly on a VM still has the advantages discussed in the presentation.
Could you talk a bit about how can SAS be organized in containers?
From its initial release, SAS Viya was architected as a set of independently scalable and updatable services. This decomposition of the SAS 9 monolithic architecture played directly into containerization as different services could be delivered in immutable containers which are then deployed and orchestrated by Kubernetes.
As a SAS-Admin, do I have to learn a lot more than Brent talked about?
As a SAS admin, it’s not necessary to learn everything about Kubernetes. But you would want to understand the basics as we discussed and some that we didn’t get to at a conceptual level, such as storage, secrets, and Role-based Access Controls. These are not strictly necessary but will probably help you connect many of the dots when applications are running in Kubernetes.
SAS Viya provides SAS Viya Operations which you can optionally deploy into your Kubernetes cluster to provide monitoring and logging capability for SAS Administrators who are unfamiliar with Kubernetes.
Can we deploy SAS application on Docker?
The SAS Analytics Pro offering is specifically built for deployment into a Docker runtime. It is a special SAS Viya offering that packages up Base SAS, SAS/STAT, SAS/GRAPH, and all SAS/ACCESS engines into a single container. As a single container, it does not require Kubernetes, and is targeted primarily at traditional SAS Foundation programmers who are looking for an easy way to deploy into a Docker runtime, on a desktop, server, or virtual machine in the cloud. Other SAS Viya offerings must be deployed into Kubernetes.
I hear that Google is NOT good at developing friendly software (the adware as an example) is this the case with K8s?
Sorry, but I’m not quite clear on the context of this question. If the question is whether K8s is user-friendly, the short answer is that it is not intended to be used that way. Rather, as I described in the presentation, you can think of it more as a data center for containers. And in that sense, it is designed for more critical operational tasks.
Was Viya 3.5 Kubernetes based? How in-depth do we need to know Kubernetes/Docker to admin Viya 2020 or higher?
SAS Viya 3.5 and earlier releases were not Kubernetes based. To deploy and administer current versions of SAS Viya into Kubernetes requires the same working knowledge of Kubernetes constructs to configure and deploy software into a cluster. SAS provides documentation and “Infrastructure as Code” (IAC) collateral to help automate and ease this burden (e.g., IAC for Azure).
How is Viya 2021.1 applied?
Updating SAS Viya software to any new release, 2021.1 included, is an update-in-place process. This is described in the SAS Viya Operations: Updating Software guide.
Why is Kubernetes more effective than its competitors? And what makes it less simple to use than competitors?
Kubernetes was/is one of several potential solutions in the container orchestration and management areas. While it is not the simplest, it is arguably the most flexible and comprehensive. Other applications, like Docker Swarm, were easier to get up and running but had a dependence on being in the Docker ecosystem and so were not as flexible across different kinds of workloads.
Is there official technical support for SAS on Kubernetes?
Yes. SAS provides technical support for SAS Viya deployed in Kubernetes. It should be noted that support is specifically targeted at the documented operations to deploy and manage the SAS Viya software. General Kubernetes usage issues that fall outside of these operations should be directed to the Kubernetes community.
Recommended Resources
SAS Tutorial | Overview of Container Technology: A Quick Introduction to All Things Containers
A Giraffe Taught Me Kubernetes
Getting Started with SAS Containers
Want more tips? Be sure to subscribe to the Ask the Expert board to receive follow up Q&A, slides and recordings from other SAS Ask the Expert webinars.
... View more