This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Cloud Provider

Info about the cloud providers available

This Page includes more info about different cloud providers

1 - Amazon Web Services

Amazon Web Services

Aws support for HA and Managed Clusters

How these credentials are used by ksctl

  1. Environment Variables
export AWS_ACCESS_KEY_ID=""
export AWS_SECRET_ACCESS_KEY=""
  1. Using command line
ksctl cred

Current Features

Cluster features

Highly Available cluster

clusters which are managed by the user not by cloud provider

you can choose between k3s and kubeadm as your bootstrap tool

custom components being used

  • Etcd database VM
  • HAProxy loadbalancer VM for controlplane nodes
  • controlplane VMs
  • workerplane VMs

Managed Cluster Elastic Kubernetes Service

we provision Roles ksctl-* 2 for each cluster:

  • ksctl-<clustername>-wp-role for the EKS NodePool
  • ksctl-<clustername>-cp-role for the EKS controlplane

we utilize the iam:AssumeRole to assume the role and create the cluster

Policies aka permissions for the user

here is the policy and role which we are using

  1. iam-role-full-access(Custom Policy)
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor6",
            "Effect": "Allow",
            "Action": [
                "iam:CreateInstanceProfile",
                "iam:DeleteInstanceProfile",
                "iam:GetRole",
                "iam:GetInstanceProfile",
                "iam:RemoveRoleFromInstanceProfile",
                "iam:CreateRole",
                "iam:DeleteRole",
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy",
                "iam:ListInstanceProfiles",
                "iam:AddRoleToInstanceProfile",
                "iam:ListInstanceProfilesForRole",
                "iam:PassRole",
                "iam:CreateServiceLinkedRole",
                "iam:DetachRolePolicy",
                "iam:DeleteRolePolicy",
                "iam:DeleteServiceLinkedRole",
                "iam:GetRolePolicy",
                "iam:SetSecurityTokenServicePreferences"
            ],
            "Resource": [
                "arn:aws:iam::*:role/ksctl-*",
                "arn:aws:iam::*:instance-profile/*"
            ]
        }
    ]
}
  1. eks-full-access(Custom Policy)
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "eks:ListNodegroups",
                "eks:ListClusters",
                "eks:*"
            ],
            "Resource": "*"
        }
    ]
}
  1. AmazonEC2FullAccess(Aws)
  2. IAMReadOnlyAccess(Aws)

2 - Azure

Azure Cloud Provider

Azure support for HA and Managed Clusters

Azure Subscription ID

subscription id using your subscription

azure-subscription

Azure Tenant ID

Azure Dashboard

Azure Dashboard contains all the credentials required

azure-dashboard

lets get the tenant id from the Azure

Azure Client ID

it represents the id of app created

Azure Client Secret

it represents the secret associated with the app in order to use it

create app secret

after-click

copy-secret

Assign Role to your app

head over to subscriptions page and click Access Control (IAM) select the Role Assignment and then click Add > Add Role Assignment create a new role and when selecting the identity specify the name of the app Here you can customize the role this app has

role-assign-app

How these credentials are used by ksctl

  1. Environment Variables
export AZURE_TENANT_ID=""
export AZURE_SUBSCRIPTION_ID=""
export AZURE_CLIENT_ID=""
export AZURE_CLIENT_SECRET=""
  1. Using command line
ksctl cred

Current Features

Cluster features

Highly Available cluster

clusters which are managed by the user not by cloud provider

you can choose between k3s and kubeadm as your bootstrap tool

custom components being used

  • Etcd database VM
  • HAProxy loadbalancer VM for controlplane nodes
  • controlplane VMs
  • workerplane VMs

Managed Cluster

clusters which are managed by the cloud provider

Other capabilities

Create, Update, Delete, Switch

3 - Civo

Civo Cloud Provider

Civo support for HA and Managed Clusters

Getting credentials

under settings look for the profile

copy the credentials

How to add credentials to ksctl

  1. Environment Variables
export CIVO_TOKEN=""
  1. Using command line
ksctl cred

Current Features

Cluster features

Highly Available cluster

clusters which are managed by the user not by cloud provider

you can choose between k3s and kubeadm as your bootstrap tool

custom components being used

  • Etcd database VM
  • HAProxy loadbalancer instance for controlplane nodes
  • controlplane instances
  • workerplane instances

Managed Cluster

clusters which are managed by the cloud provider

Other capabilities

Create, Update, Delete, Switch

4 - Google Cloud Platform

Google Cloud Platform

Gcp support for HA and Managed Clusters

5 - Local

Local Provider

It creates cluster on the host machine utilizing kind

Current features

currently using Kind Kubernetes in Docker