Requirements for Running CloudOps for Kubernetes
Knowledge Requirements
Knowledge in the below technologies is required to configure and operate CloudOps for Kubernetes:
- Bash scripting
- Docker
- Terraform
- Kubernetes, including the following services:
- Ambassador API Gateway
- Cluster Autoscaler
- AWS services including:
- Virtual Private Cloud (VPC)
- Elastic Kubernetes Service (EKS)
- EC2 Instances
- Network Load Balancers (NLBs)
- Route53
- Elastic Container Registry (ECR)
- Security Groups
- Relational Database Service (RDS)
- Azure services including:
- Resource Groups
- Azure Kubernetes Service (AKS)
- Virtual Machines
- Availability Sets
- Networking
- Load Balancers
- DNS Zones
- Azure Container Registry (ACR)
- Network Security Groups
- Azure Database for MySQL
Elastic Path Code and Nexus Access
Ensure that you have access to clone the Elastic Path Git repositories containing the Elastic Path code. Those are read-only repositories provided by Elastic Path and are hosted at Elastic Path Source Code Repositories.
Additionally, ensure that you have credentials for Elastic Path’s public Nexus repository.
Git Repository Hosting Service
You must clone the Git repositories for Elastic Path Commerce and CloudOps for Kubernetes and host them in a Git repository hosting service of your choice.
Identify and confirm that you can access the Git hosting service you will use. The hosting service must be accessible from systems inside your cloud account and not be blocked by a firewall.
CloudOps for Kubernetes Git Repositories
The below two Git repositories comprise CloudOps for Kubernetes. You must clone them and then host them in your Git repository hosting service.
Elastic Path Commerce Git Repository
The following Git repository provides the Elastic Path Commerce base product. You or your Elastic Path Commerce development team must clone it and then host it in your Git repository hosting service.
note
Identify and make note of the Elastic Path Commerce version that you will use with CloudOps for Kubernetes.
Confirm Compatibility
Ensure that your versions of Elastic Path Commerce and CloudOps for Kubernetes are compatible by reviewing the Compatibility of CloudOps for Kubernetes documentation.
Provisioning a Git SSH Key
Identify or create a read-only Git SSH key to use with the CloudOps for Kubernetes build system, to allow Jenkins jobs to check code out CloudOps and Elastic Path Commerce source code from Git. The Git key must be long-lived and active for as long as you will use Elastic Path CloudOps for Kubernetes. The Git SSH key provided when bootstrapping CloudOps for Kubernetes will be added to Jenkins and will continue to be used by the Jenkins instance after initialization is completed. Selecting the SSH key is an important consideration for the longer term stability and functionality of CloudOps for Kubernetes.
note
CloudOps for Kubernetes does not support password-protected SSH keys.
Development Tools
Operating CloudOps for Kubernetes requires a certain set of tools. You will clone the CloudOps for Kubernetes Git repository locally and configure and run containers using Docker Compose.
The following are the requirements for the system where you run the steps to bootstrap and operate CloudOps for Kubernetes:
The following software is required:
- Docker, version 18.09.0 or later
- Docker installation. For more information, see:
- Windows: Docker for Windows installation instructions
- Mac: Docker for Mac installation instructions
- CentOS: Docker’s CentOS specific installation instructions
- Debian: Docker’s Debian specific installation instructions
- Fedora: Docker’s Fedora specific installation instructions
- Ubuntu: Docker’s Ubuntu specific installation instructions
- Docker installation. For more information, see:
- Docker-compose, version version 1.25.3 or later. For installation instructions, see Docker Compose installation instructions
- The kubectl CLI, version 1.14.0 or later: For installation instructions, see Kubernetes documentation page
Depending on the cloud being used, the following is required:
- For Azure:
- The Azure CLI, version 2.0.77 or later: For installation instructions, see Azure CLI documentation page
- For AWS:
- The AWS CLI, version 1.16.290 or later: For installation instructions, see AWS CLI documentation page
- The eksctl CLI, version 0.11.1 or later: For installation instructions, see eksctl documentation page
note
The system where you run the steps to bootstrap and operate CloudOps for Kubernetes must have stable Internet access, with at least 10Mbps down and 1Mbps up
Cloud Provider Resources
You will need either:
- An Azure subscription with Owner access
- An AWS account
note
Azure subscriptions and AWS accounts have quotas on resources. You can increase the quotas but you must request the increase through their support teams.
To ensure that a high enough quota exists to create a new AKS or EKS cluster and for scaling requirements, calculate the following:
- Number of required cores from the virtual machine size of the cluster
- Initial size of the cluster
- Required size of the cluster due to scaling
The virtual machine size is aws_eks_instance_type
or TF_VAR_azure_aks_vm_size
. The initial cluster size is aws_eks_min_node_count
or TF_VAR_azure_aks_min_node_count
in the docker-compose.yml
file.
The following examples demonstrate the vCPU quota you might need depending on the cloud you are using:
For Azure: If you are using the Standard_F8s_v2 Virtual Machine (VM) size in Azure, each VM has eight cores. For a cluster with five VMs, 40 cores are needed to create the cluster. If scaling requirements are a maximum cluster size of 10 VMs, 80 cores at most are required for scaling. This value is larger than the value required to create the cluster. The value to validate is available with the FSv2 Series vCPUs quota for the region you are using.
For AWS: If you are using the m5a.xlarge instance type, each instance has four vCPUs. For a cluster with five VMs, 20 vCPUs are needed to create the cluster. If scaling requirements are a maximum cluster size of 10 VMs, 40 vCPUs at most are required for scaling. This value is larger than the value required to create the cluster. The value to validate is available with the Running On-Demand All Standard instances vCPUs quota for the region you are using.
For more information about quotas and how to request quota increases, see: