LINUX

Cómo crear un clúster de Kubernetes con Kops

kubernetes cluster KopsEn este artículo usaremos kops para instalar el clúster de Kubernetes de grado de producción en Amazon Web Services. Para esta guía, asumimos que tiene una cuenta de AWS. También necesita kubectl instalado, probablemente ya lo tenga si siguió cualquiera de nuestros artículos anteriores de Kubernetes. De lo contrario, proporcionaremos el paso de instalación aquí junto con otras dependencias como awscli.

Instalación de binarios kubectl, kops y awscli

Comencemos el juego obteniendo el kubectl

curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl 

sudo mv kubectl /usr/local/bin/

A continuación obtendremos kops binary

wget https://github.com/kubernetes/kops/releases/download/1.7.0/kops-linux-amd64

chmod +x kops-linux-amd64

sudo mv kops-linux-amd64 /usr/local/bin/kops

A continuación, necesitamos usar pip, el administrador de paquetes de Python para instalar awscli. Obviamente, necesitas tener instalado Python.

sudo pip install awscli

Configuración de awscli

Debe tener las claves de acceso de su cuenta de AWS para poder utilizar awscli. Puede consultar cómo crear claves de acceso raíz de AWS documentación.

Una vez que lo hagas, podemos pasar a la parte de configuración.

aws configure

Luego trabaje el mensaje de la siguiente manera

AWS Access Key ID [None]: youraccesskeyID
AWS Secret Access Key [None]: yourSecretAccessKey

Default region name [None]: us-west-2
Default output format [None]:

Más adelante, también necesitaremos esas claves, por lo que debe enviarlas a las variables env.

export AWS_ACCESS_KEY_ID=youraccesskeyID
export AWS_SECRET_ACCESS_KEY=yourSecretAccessKey

También puede agregar esas líneas a ~ / .bashrc y ejecutar el comando source ~ / .bashrc para que permanezca en los reinicios. Pero tenga en cuenta que todos los que usen su computadora pueden obtener esas claves.

A continuación, creemos kops de grupo y usuario y otorguemos los permisos necesarios para que los kops puedan funcionar sin contratiempos.

aws iam create-group --group-name kops

aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonEC2FullAccess --group-name kops

aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonRoute53FullAccess --group-name kops

aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess --group-name kops

aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/IAMFullAccess --group-name kops

aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonVPCFullAccess --group-name kops

aws iam create-user --user-name kops

aws iam add-user-to-group --user-name kops --group-name kops

Y por fin creamos clave de acceso para el usuario de kops

aws iam create-access-key --user-name kops

Siempre puede verificar los usuarios de IAM con el siguiente comando

aws iam list-users

Creando el clúster

Para la creación de clústeres, necesitamos agregar más variables env. NAME será el nombre del clúster, ya que no haremos configuraciones de DNS, usaremos DNS basado en chismes y para ese clúster el nombre debe terminar con k8s.local y antes de eso puede poner casi cualquier cosa.

export NAME=cluster.k8s.local

A continuación, debemos crear un depósito de AWS para el clúster y crear una variable que utilizará kops para la tienda estatal.

aws s3api create-bucket --bucket ${NAME}-state

export KOPS_STATE_STORE=s3://cluster.k8s.local-state

A continuación, crearemos un clúster. Usaremos instancias t2.micro porque son elegibles para el nivel gratuito, y si se registró en el nivel gratuito (como yo), puede aprobar sin costo. De lo contrario, AWS le costará algo de dinero.

kops create cluster 
 --name=${NAME} 
 --zones=us-west-2a 
 --master-size="t2.micro" 
 --node-size="t2.micro" 
 --node-count="3" 
 --ssh-public-key="~/.ssh/id_rsa.pub"

Después de esto, obtendrá los archivos de configuración para el nuevo clúster.

Puede editarlo con este comando. Utilizará su editor predeterminado, que puede cambiar cambiando la variable $ EDITOR.

kops edit cluster ${NAME}

Después de revisar el archivo yaml, puede comprometerse a crear el clúster con este comando:

kops update cluster ${NAME} --yes

Después de esto, te espera un poco

El siguiente comando puede mostrarle cuándo el clúster está listo.

kops validate cluster

Probablemente tendrá que hacerlo varias veces hasta que se inicialicen los nodos. Así es como se ve mi clúster cuando está listo.

Implementar algunas aplicaciones

Para empezar, podemos instalar el tablero.

kubectl create -f https://git.io/kube-dashboard

Podemos usar el tablero con el siguiente comando:

kubectl proxy


A continuación, instalaremos la demostración de microservicios de la vieja tienda de calcetines.

kubectl apply -n sock-shop -f "https://github.com/microservices-demo/microservices-demo/blob/master/deploy/kubernetes/complete-demo.yaml?raw=true"

kubectl -n sock-shop get svc front-end

Obtendrás algo similar a esto

NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
 front-end 100.66.88.111 <nodes> 80:30001/TCP 35m

Lo que buscamos es el puerto 30001 en este caso. Necesitamos hacer coincidir este puerto con la IP del servidor maestro. Es necesario para permitir el tráfico entrante a este puerto en los grupos de seguridad de AWS.

A continuación, cuando formamos la URL de ip y port, deberíamos obtener el sitio de sock-shop.

Cuando haya terminado de usar el clúster, puede obtener una vista previa de su eliminación con este comando:

kops delete cluster --name ${NAME}

Y de hecho elimínelo con este:

kops delete cluster --name ${NAME} --yes

No voy a eliminarlo todavía porque usaremos kube-prompt en este clúster en el próximo artículo. Con esto, terminamos este artículo después de la creación exitosa de un clúster de kubernetes de grado de producción con Kops. Kops son las siglas de Kubernetes Operations y seguro que facilita las operaciones, siempre que esté implementando en AWS. Si necesita Google Cloud Engine, Bare Metal o OpenStack Cloud privado, entonces Kubespray basado en Ansible es algo para usted y lo presentaremos en algunos de los próximos artículos.

Leer también:

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar