SAS Viya 2020.1 and later runs on Kubernetes. A working knowledge of Kubernetes concepts is essential for SAS Administrators, including Kubernetes objects such as :
- Pods
- Deployments, controllers, statefulsets, daemonsets
- Nodes, how nodes can be labelled to manage workload placement
- Namespaces
- Jobs and cronjobs
- Volumes, volumemounts
- Persistant volumes and persistant volume claims
- Secrets and configmaps
- kubectl, the Kubernetes command-line tool
- kube config files
We would encourage all SAS Administrators to complete at least an introductory course in Kubernetes from your favourite training provider, or from one of the sources on this page: https://kubernetes.io/training/.
You should also become familiar with at least one Kubernetes user interface, such as Lens, OpenLens, K9s or the Kubernetes Dashboard.
While it is not usually up to the SAS Administrator to decide how SAS Viya should be deployed, you should still find out which deployment method is used for your SAS Viya deployment, and familiarize yourself with how it works. This will help you discuss customizations that could be made to your deployment with whoever does deploy and maintain it.
If you are the SAS administrator for an on-demand instance of SAS Viya hosted by SAS or by a cloud service provider, which neither you nor anyone in your organization deploys, it is not as important to know which deployment method was used.
However, if you or anyone else in your organization deploys the instance of SAS Viya which you manage, you should know that there are several Deployment Methods that can be used to deploy SAS Viya. These have gradually evolved since SAS Viya 2020.1 was first released, and may continue to develop and change. At the time of writing the four available methods are:
- Deployment using the SAS Viya 4 Platform Deployment Operator
- Deployment using the sas-orchestration command running inside a Docker container
- Deployment using Kubernetes commands (i.e. kubectl apply)
- Deployment using the SAS Viya 4 Deployment GitHub project
For an on-site deployment, may be able to learn which method was (and is) used from project documentation, or by asking the architect or deployment specialist who deployed and/or maintains your SAS Viya deployment.
Once you have identified the deployment method used, it is useful to be aware of how customizations to your deployment are made, even if you are not going to make those customizations yourself.
Read the SAS Viya Platform Operations guide's section on Deployment > Pre-Installation Tasks > Plan the Workload Placement. This explains the four main SAS Viya workload classes (stateless, stateful, cas and compute), and why you need to plan to distrubute workload across different nodes in your Kubernetes cluster so that each type of workload has the resources it requires, and so that different types of SAS Viya services/pods do not compete with each other for resources in an undesirable way. It explains how labels, and taints are used to manage where pods will run, due to their tolerations.
Also note that the page linked above says:
IMPORTANT SAS strongly recommends labeling and tainting all your nodes, especially the CAS nodes. [...]
Customizing many aspects of your SAS Viya platform deployment is done during initial deployment, or by re-deploying the software.
See Initial kustomization.yaml File, Common Customizations and Modify Existing Customizations in a Deployment in the SAS Viya Platform Operations documentation.