AWS EKS CI - CD With AWS CodeCommit + AWS CodeBuild + AWS CodePipeline - Final - En.es
AWS EKS CI - CD With AWS CodeCommit + AWS CodeBuild + AWS CodePipeline - Final - En.es
com
➔ Conforme y compatible
sh prereqs.sh
➔ Instalar kubectl
https://docs.aws.amazon.com/eks/latest/
userguía / install-kubectl.html
➔ Instalar aws-iam-authenticator
https://docs.aws.amazon.com/eks/latest/
userguía / install-aws-iam-authenticator.html
➔ Instalar eksctl
https://docs.aws.amazon.com/eks/latest/user
guide / Getting-started-eksctl.html o
https://eksctl.io/introduction/installation/
Crear clúster de AWS EKS
Crear clúster:
cluster.yaml
eksctl crear clúster -f clúster.yaml
eksctl eliminar cluster -f cluster.yaml - nombre: ng-1 #cluster nombre del grupo de nodos
del paquete. .
EXPONER 3000
CMD ["nodo", "index.js"]
Publicación de imágenes en AWS ECR
utilícelo con AWS ECR de la misma manera. Para obtener el inicio de sesión de la ventana acoplable y la ejecución automática
aws ecr get-login-password --region <nombre de la región> | inicio de sesión de docker - nombre de
usuario AWS --password-stdin <id_cuenta> .dkr.ecr.us-west-2.amazonaws.com
Por ejemplo, aws ecr get-login-password --region us-west-2 | inicio de sesión de docker --
username AWS --password-stdin123456789012.dkr.ecr.us-west-2.amazonaws.com
La imagen: (Todos los comandos ya se proporcionan en la interfaz de usuario de AWS ECR, solo use el mismo)
123456789012.dkr.ecr.us-west-2.amazonaws.com/cicd-demo:latest
Asegúrate de usar las etiquetas correctas
Finalmente, implementemos la aplicación
kubectl apply -f deployment.yaml
deployment.yaml
kubectl apply -f service.yaml
apiVersion: aplicaciones / v1
app.kubernetes.io/name: cicd-demo
kubectl describe pod pod_name_here app.kubernetes.io/instance: cicd-demo-instance
app.kubernetes.io/version: '1.0.0'
service.yaml
app.kubernetes.io/managed-by: kubectl
apiVersion: v1 nombre: cicd-demo-deployment
tipo: Servicio spec:
metadatos: réplicas: 1
etiquetas: selector:
app.kubernetes.io/name: cicd-demo matchLabels:
app.kubernetes.io/instance: cicd-demo-instance aplicación: cicd-demo
Especificaciones: Especificaciones:
selector: contenedores:
aplicación: cicd-demo - imagen: 120717539064.dkr.ecr.us-west-2.amazonaws.com/cicd-demo:latest
tipo: LoadBalancer imagePullPolicy: Siempre
puertos: nombre: cicd-demo
- protocolo: TCP puertos:
AWS_DEFAULT_REGION
AWS_CLUSTER_NAME
AWS_ACCOUNT_ID
IMAGE_REPO_NAME
IMAGE_TAG
Si usted es quien creó el clúster, debe ejecutar lo siguiente en su terminal local para crear una copia de aws-auth configMap.
Opción 1:
Como estamos usando la herramienta eksctl, simplemente podemos hacer el mapeo de roles ejecutando este comando:
eksctl create iamidentitymapping --cluster cluster_name_here --arn role_arn_here --group system: masters --
username Designed_user_name_here
P.ej
eksctl crea iamidentitymapping --cluster cicd-demo --arn
arn: aws: iam :: your_accoun_tid_here: role / CodeBuildKubectlRole -sistema de grupo: maestros --nombre de usuario CodeBuildKubectlRole
https://eksctl.io/usage/iam-identity-mappings/
Configuración del clúster de AWS EKS para CI / CD
Opcion 2: archivo de muestra aws-auth.yaml
aws eks update-kubeconfig --name eks-cluster-name --region aws-region apiVersion: v1
kubectl obtiene mapas de configuración aws-auth -n kube-system -o yaml> tipo: ConfigMap
aws-auth.yaml metadatos:
nombre: aws-auth
Ahora, edite su aws-auth.yaml y agregue lo siguiente en
data.mapRoles espacio de nombres: kube-system
datos:
- rolearn: arn: aws: iam :: 510442909921: rol / nombre-rol nombre de
mapRoles: |
usuario: rol-nombre - rolearn:
grupos: arn: aws: iam :: 11122223333: role / EKS-Worker-NodeInstance
- sistema: maestros Role-1I00GBC9U4U7B
nombre de usuario: sistema: nodo: {{EC2PrivateDNSName}}
Aplica esta configuración desde tu terminal:kubectl
apply -f aws-auth.yaml
grupos:
- sistema: bootstrappers
- sistema: nodos
Si tiene algún problema, siga estos pasos de depuración:
- rolearn:
https://aws.amazon.com/premiumsupport/knowledge-center/am azon- arn: aws: iam :: 11122223333: role / designado_role
eks-cluster-access / nombre de usuario: designado_role
grupos:
- sistema: maestros
Limpiar todo
Eliminar clúster:
Detrás de la escena, la pila de formación de nubes se eliminará y, en consecuencia, los recursos también se eliminarán, debe hacerlo si lo está haciendo en desarrollo o
prueba como una implementación temporal; de lo contrario, le costará mucho.
Hay algunas cosas más que debes saber.
Esta demostración es solo el punto de partida de CICD y hay mucho más disponible, cuanto más lo use, más
experiencia obtendrá, por lo que le sugiero que lo pruebe usted mismo e implemente su propio clúster de AWS EKS.
Después de probar las implementaciones básicas de la aplicación, lo siguiente que podría estar interesado en aprender es: