Как да

Дайте достъп на разработчиците до клъстер 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

Как да наемате и монетизирате неизползвани публични IPv4 адреси с помощта на IPXO
Кратка прелюдияПрез 2011 г. IANA (Internet Assigned Numbers Authority), органът, натоварен с отговорността за регистриране и разпределяне на IP адреси...
Какво да имате предвид при инвестиране в биткойн?
Биткойн продължава да пробива бариерите и пише история с всеки изминал ден. След като счупи рекорда за 2017 г. по стойност, инвестицията, която Тесла ...
Онлайн бизнес съвети | 5 начина да го направим по-добър
5 начина да направите вашия онлайн бизнес по-добърИнтернет е закрепен в живота ни, така че онлайн бизнесът е станал толкова познат, колкото обикновена...

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