Рубрики
Uncategorized

Как создать кластер EKS AWS, используя пулуби и Голан

Строительство кластера Kubernetes трудно, так почему бы не использовать управляющую службу Kubernetes? В предыдущем р … Теги от Go, DevOps, Kubernetes.

Строительство кластера Kubernetes трудно, так почему бы не использовать управляющую службу Kubernetes? В предыдущем пост Я добавил подсети к VPC. В этом посте я буду использовать VPC для создания AWS EKS кластер.

Полный проект доступен на Гадость .

Конфигурация

Минимальная конфигурация, необходимая для создания кластера, — это имя для кластера, версия Kubernetes, которую вы хотите использовать, и роль IAM будет использовать ваш кластер. В то время как необязательно, указывая типы журналов, которые ваш кластер отправит на CloudWatch, может быть очень полезен при отладке и устранении неполадок. Конфигурация ниже, которую вы можете скопировать/вставить в файл YAML из предыдущего блога, имеет четыре параметра. Параметр EKS: кластерное имя это название кластера. Параметр EKS: K8S-версия Это версия Kubernetes для использования (на момент написания 1.14 была последняя доступная версия). Параметр EKS: Кластер-Роль-Арн Орган роли IAM ваша кластер должен выполнять задачи. Для получения более подробной информации о том, как создать роль, проверьте AWS Docs Отказ Наконец, параметр EKS: кластер-журналы-типы Разделенный запятой список всех компонентов, которые могут издавать журналы.

eks:cluster-name: myEKSCluster
eks:k8s-version: "1.14"
eks:cluster-role-arn: "arn:aws:iam::ACCOUNTID:role/ServiceRoleForAmazonEKS"
eks:cluster-log-types: "api,audit,authenticator,scheduler,controllerManager"

Вы можете использовать командную строку, как SULUMI CONFIG SET EKS: кластерное название «Myekscluster» Чтобы добавить эти новые переменные конфигурации, или вы можете добавить их непосредственно в файл yaml. Файл YAML со всей конфигурацией называется Пулуби. <Имя вашего проекта> .yaml Отказ

Создание кластера

Код ниже является расширением из кода, созданного в предыдущем пост Отказ Таким образом, вы можете скопировать/вставить этот фрагмент в свой код GO. Прогулка по коду, он получает конфигурацию для имени кластера и включил типы журналов из файла yaml. Он также использует подсети, созданные в предыдущем посте. Вызов езди NewCluster () Скажут пулуби, чтобы пойти создать кластер EKS в VPC, используя подсети, которые вы уже создали.

// Create an EKS cluster
clusterName := getEnv(ctx, "eks:cluster-name", "unknown")
enabledClusterLogTypes := strings.Split(getEnv(ctx, "eks:cluster-log-types", "unknown"), ",")

clusterArgs := &eks.ClusterArgs{
    Name: clusterName,
    Version: getEnv(ctx, "eks:k8s-version", "unknown"),
    RoleArn: getEnv(ctx, "eks:cluster-role-arn", "unknown"),
    Tags: tags,
    VpcConfig: subnets,
    EnabledClusterLogTypes: enabledClusterLogTypes,
}

cluster, err := eks.NewCluster(ctx, clusterName, clusterArgs)
if err != nil {
    fmt.Println(err.Error())
    return err
}

ctx.Export("CLUSTER-ID", cluster.ID())

Запуск кода

Как и в предыдущее время, последнее, что нужно сделать, это запустить пуловка вверх Чтобы сказать пулуби, чтобы пойти создать кластер EKS внутри вашего VPC! Если вы используете тот же проект и стек, Pulumi автоматически поймет, что ему необходимо создать кластер внутри существующего VPC и не создаст новую VPC. Запуск этого кода может потребоваться немного, пока AWS завершит создание кластера (в моем случае потребовалось почти 10 минут).

$ pulumi up
Previewing update (builderstack):

     Type Name Plan       
     pulumi:pulumi:Stack builder-builderstack             
 + └─ aws:eks:Cluster myEKSCluster create     

Outputs:
  + CLUSTER-ID: output

Resources:
    + 1 to create
    4 unchanged

Do you want to perform this update? yes
Updating (builderstack):

     Type Name Status      
     pulumi:pulumi:Stack builder-builderstack              
 + └─ aws:eks:Cluster myEKSCluster created     

Outputs:
  + CLUSTER-ID: "myEKSCluster"
    SUBNET-IDS: [
        [0]: "subnet-"
        [1]: "subnet-"
    ]
    VPC-ID : "vpc-"

Resources:
    + 1 created
    4 unchanged

Duration: 9m55s

Permalink: https://app.pulumi.com/retgits/builder/builderstack/updates/3

Постоянная ссылка в нижней части вывода требует от консоли пуловой консоли, где вы можете увидеть все детали выполнения вашего приложения и созданные ресурсы.

Консоль пульвы также имеет действительно полезные ссылки на консоль AWS, чтобы увидеть ресурсы.

Оригинал: «https://dev.to/retgits/how-to-create-an-aws-eks-cluster-using-pulumi-and-golang-2g5m»