Как да

Дайте достъп на разработчиците до клъстер EKS Kubernetes

Дайте достъп на разработчиците до клъстер EKS Kubernetes

В предишната статия разгледахме стъпките за инсталиране на EKS Cluster в платформата Amazon Cloud. Amazon Elastic Kubernetes Service (Amazon EKS) е напълно управлявана услуга Kubernetes, която премахва главоболието при управлението на самолет за управление, включително etcd от SysAdmin. Надстройването на клъстер може лесно да се направи с едно щракване на бутон. В това кратко ръководство ще ви преведа през процеса на предоставяне на достъп на разработчиците до пространството от имена на Kubernetes, използвайки правила на IAM и родния RBAC на Kubernetes.

За да ви помогне това ръководство, някои предпоставки, които трябва да бъдат маркирани, са:

Преди да започнете

Потвърдете, че можете да изброите вашия клъстер от вашата локална машина или Bastion сървър, който има достъп до EKS Control Plane.

$ eksctl получи клъстер ИМЕ РЕГИОН prod-eks-cluster eu-west-1

Или с команда aws.

$ aws eks списък-клъстери

Ако вашата команда не върне никакви изходи, проверете дали използвате правилни идентификационни данни и регион.

От уеб конзола:

По подразбиране само създателят на клъстера Amazon EKS има система: master разрешения, която отключва всички операции на клъстера Kubernetes, които трябва да бъдат изпълнени от kubectl. За да разширите функционалността, така че другите потребители да имат достъп до клъстера, aws-auth ConfigMap ще бъде модифициран.

Ще трябва да създадем IAM роля с AWS Услуга за токени за сигурност (STS) разрешения, което позволява на потребителите да искат временни идентификационни данни с ограничени привилегии.

Стъпка 1: Създайте IAM роля

Следващото е да създадете роля на IAM> Роли> Създаване на роля.

Изберете „Друг акаунт в AWS ” като тип доверен обект:

Не прилагайте никакво разрешение

Добавете подходящи тагове.

Дайте име на роля и я създайте с помощта на „Създаване на роляБутон в долната част. Моята ще се извика k8s-devs-role, това е същото име, зададено при създаването на политики.

Стъпка 2: Създайте IAM политика със STS да приеме разрешения за роля

Влезте в уеб конзолата на AWS и отидете до IAM> Политики> Създаване на политика > JSON и поставете под json съдържанието, заместващо с вашия идентификационен номер на акаунт в AWS и k8s-devs-role с името на ролята, която сте създали.

"Версия": "2012-10-17", "Изявление": ["Ефект": "Разрешаване", "Действие": "sts: AssumeRole", "Ресурс": "arn: aws: iam ::: role / k8s-devs-role ", " Effect ":" Allow "," Action ": [" eks: DescribeCluster "," eks: ListClusters "]," Resource ":" * "]

Пример за идентификатор на акаунт 293759796572

"Версия": "2012-10-17", "Изявление": ["Ефект": "Разрешаване", "Действие": "sts: AssumeRole", "Ресурс": "arn: aws: iam :: 293759796572 : role / k8s-devs-role ", " Effect ":" Allow "," Action ": [" eks: DescribeCluster "," eks: ListClusters "]," Resource ":" * "]

Дайте име на правилото и натиснете бутона за създаване.

Стъпка 3: Създайте IAM потребителска група

Създайте IAM група с име k8s-devs

Прикачете политиката, създадена в стъпка 2.

Прегледайте политиката и завършете процеса на създаване.

Стъпка 4: Добавете IAM потребители към групата

Последната ни стъпка е добавяне на потребители на IAM, които се нуждаят от достъп до клъстер Kubernetes, към групата, която току-що създадохме.

Отидете на АЗ СЪМ > Групи > k8s-devs > Добавяне на потребители към групата за да добавите потребители към групата.

Добавете всички други потребители, на които искате да предоставите достъп.

Стъпка 5: Създайте Kubernetes RBAC за разработчици

Ролевият контрол на достъпа (RBAC) е метод за регулиране на достъпа до компютърни или мрежови ресурси въз основа на ролите на отделни потребители във вашата организация. RBAC API декларира четири вида Kubernetes обект: Роля, ClusterRole, RoleBinding и ClusterRoleBinding.

Ще започна, като създам три пространства от имена, до които ще дам достъп на разработчиците: прод, уат и разработчик

$ kubectl създаване на пространство от имена prod пространство на име / прод създадено $ kubectl създаване пространство на имена uat пространство на имена / uat създадено $ kubectl създаване на пространство на имена пространство на име / създадено dev

Избройте всички пространства от имена, за да потвърдите творенията.

$ kubectl get ns ИМЕ СТАТУС ВЪЗРАСТ по подразбиране Активен 25d dev Активен 9s istio-оператор Активен 14d istio-система Активен 14d kube-node-lease Активен 25d kube-публичен Активен 25d kube-система Активен 25d мониторинг Активен 17d прод Активен 40s uat Активен 26s

Създаване на клъстерна роля

Ще създам клъстерна роля, наречена dev-пълен достъп чийто файл на манифеста изглежда по-долу:

kubectl прилага -f - <

Очакван резултат:

клъстерол.rbac.упълномощаване.k8s.io / dev-пълен достъп е създаден

Потвърдете настройките:

$ kubectl получи клъстери за dev-пълен достъп -o yaml

Ако имате инсталиран Metrics Server, можете да добавите достъп до ресурса Api по-долу:

- apiGroups: ["метрики.k8s.io "] ресурси: [" * "] глаголи: [" * "]

Създаване на RoleBindings

Следва създаването на обвързване на групови роли за нашите разработчици.

$ vim k8s-access.ш

Групата се нарича k8s-devs

# Достъп до Prod namespace NAMESPACE = "prod" CLUSTERROLE = "dev-full-access" kubectl apply -f - <

Приложете конфигурацията:

sh k8s-access.ш

Подобна конфигурация се използва за разрешаване на достъп за други пространства от имена:

# Достъп до UAT пространство от имена NAMESPACE = "uat" CLUSTERROLE = "dev-full-access" kubectl apply -f - <

Стъпка 6: Редактирайте Kubernetes aws-auth ConfigMap

За да предоставите на допълнителни потребители или роли на AWS способността да взаимодействат с вашия клъстер, трябва да редактирате aws-auth ConfigMap в Kubernetes.

Проверете дали вече сте приложили aws-auth ConfigMap.

$ kubectl описва configmap -n kube-system aws-auth

Добавяне на IAM потребител или роля към Amazon EKS клъстер

Ще добавим нашата IAM роля, създадена в Стъпка 1 към EKS клъстер чрез редактиране на aws-auth ConfigMap.

$ kubectl редактиране -n kube-system configmap / aws-auth

Актуализирайте данни.mapRoles раздел за разрешаване на достъп с ролята на IAM и групата Kubernetes RBAC.

apiVersion: v1 данни: mapRoles: | - групи: - k8s-devs rolearn: arn: aws: iam ::: role / k8s-devs-role потребителско име: разработчик

Замяна:

Ето екранна снимка на моята конфигурация:

Ако искате да дадете на конкретен потребител главен администраторски достъп, добавете подобно по-долу.

mapUsers: | - групи: - система: master userarn: arn: aws: iam ::: потребител / потребителско име: arn: aws: iam ::: потребител /

Или просто достъп до определени пространства от имена, както е зададено в Ролевите обвързвания по-рано:

mapUsers: | - групи: - k8s-devs userarn: arn: aws: iam ::: потребител / потребителско име: arn: aws: iam ::: потребител /

Стъпка 7: Създайте kubeconfig за Amazon EKS (като разработчик)

Разработчиците първо трябва да инсталират AWS CLI и да конфигурират своите идентификационни данни.

$ aws конфигурира

След като зададете идентификационни данни, потвърдете с командата по-долу:

$ aws sts get-caller-identity

Очакван резултат:

"UserId": "", "Сметка": ""," Arn ":" arn: aws: iam ::: потребител /"

Разработчиците ще използват AWS CLI актуализация-kubeconfig команда за създаване или актуализиране на kubeconfig за клъстера:

aws eks --region  update-kubeconfig --name  --role-arn arn: aws: iam ::: role / k8s-devs-role

Примерът по-долу е за наречен клъстер prod-eks-клъстер създаден през eu-west-1 регион на идентификатор на акаунт 293759796572

$ aws eks --region eu-west-1 update-kubeconfig --name prod-eks-cluster --role-arn arn: aws: iam :: 293759796572: role / k8s-devs-role

Команден изход:

Добавен е нов контекстен arn: aws: eks: eu-west-1: 293759796572: cluster / prod-eks-cluster към / var / root /.kube / конфиг

Опитайте да изброите ресурси на обхвата на клъстера, които трябва да получите Забранен съобщение за грешка:

$ kubectl get nodes Грешка от сървъра (Забранено): възлите са забранени: Потребителят "разработчик" не може да изброи ресурси "възли" в API групата "" в обхвата на клъстера

Но трябва да можете да изброите ресурсите на пространството от имена:

$ kubectl get all -n prod Не са намерени ресурси в пространство от имена на prod. $ kubectl get all -n uat Няма намерени ресурси в пространство от имена на prod. $ kubectl get all -n dev Не са намерени ресурси в пространство от имена на prod.

Прилагане на тестово приложение:

$ kubectl стартира nginx-пример --image = nginx --replicas = 2 -n внедряване на dev.apps / nginx-example създаден $ kubectl get pods -n dev ИМЕ ГОТОВ СЪСТОЯНИЕ ВЪЗСТАНОВЯВА ВЪЗРАСТ nginx-example-79c476f965-jqm6f 1/1 Running 0 29s nginx-example-79c476f965-lkzll 1/1 Running 0 29s $ kubectl delete внедряване nginx- пример -n внедряване на dev.приложения "nginx-пример" изтрити

Насладете се на разработката си на Kubernetes, задвижвана от Amazon EKS. По-долу са дадени някои видео класове, които можете да изпробвате на Kubernetes и Microservices.Kubernetes за абсолютните начинаещи - практическиKubernetes за абсолютните начинаещи - практически $ 12.06156 долара.75в наличност КУПЕТЕ СЕГАУдеми.comDocker и Kubernetes: Пълното ръководствоDocker и Kubernetes: Пълното ръководство $ 12.06120 долара.58в наличност КУПЕТЕ СЕГАУдеми.comСертифициран администратор на Kubernetes (CKA) с практически тестовеСертифициран администратор на Kubernetes (CKA) с практически тестове $ 12.06156 долара.75в наличност КУПЕТЕ СЕГАУдеми.comНаучете DevOps: Пълният курс по KubernetesНаучете DevOps: Пълният курс по Kubernetes $ 12.0648 долара.22в наличност КУПЕТЕ СЕГАУдеми.comСертифициран разработчик на приложения Kubernetes (CKAD) с тестовеСертифициран разработчик на приложения Kubernetes (CKAD) с тестове $ 12.06156 долара.75в наличност КУПЕТЕ СЕГАУдеми.com

Как да разширим PVC в OpenShift с OCS Storage
Контейнерната платформа OpenShift използва рамката на Kubernetes за постоянен обем (PV), за да позволи на администраторите на клъстера да осигурят пос...
Присъединете се към Ubuntu 20.04 | 18.04 / Debian 10 към домейн на Active Directory (AD)
Въпрос: Как мога да се присъединя към Ubuntu 20.04 | 18.04 до Windows домейн?, мога ли да се присъединя към Debian 10 към домейн на Active Directory?....
Как да изпращате факс онлайн безплатно
За тези, които нямат на разположение напълно оборудван домашен офис, чуването на думите „факс на документа“ бързо предизвиква чувство на страх. Незави...

Уебсайт, посветен на джаджи, операционни системи и съвременни технологии. Много интересни статии и полезни съвети