Escolar Documentos
Profissional Documentos
Cultura Documentos
Description
Introdução
a rk
Uma ferramenta que facilita a criação de clusters Kubernetes na AWS é o KOPS. Os passos à seguir
t e rm
mostrarão como instalá-lo e utilizá-lo para montar seu cluster. Como leitura adicional, recomendo o
a
Starting Guide
u lt w
Pré requisitos
d ef a
Verifique se você possuí suas credenciais da AWS no seu arquivo .aws/credentials. Você
precisará de permissões em EC2 e Route53.
Crie um domíniou ou subdomínio no Route53 de sua conta AWS. O KOPS não irá funcionar se você
não possuir um domínio público gerenciado pelo Route53.
Determine uma faixa de IP para usar em sua nova VPC (ou escolha uma VPC existente). Para
clusters temporários ou pessoais, eu costumo usar 10.0.0.0/16.
Instalando KOPS
Para a instalação do KOPS em MAC OS-X, você precisa ter brew instalado antes.
chmod +x kops-linux-amd64
mv kops-linux-amd64 /usr/local/bin/kops
Page 1
Footer Tagline
COMPANY NAME
Address | Phone | Link | Email
No Linux, faça:
a rk
export DOMAIN_NAME="k8s.example.com"
a t e rm
t w
AWS_PROFILE aponta para nossas credenciais armazenadas no arquivo aws/credentials:
u l
export AWS_PROFILE=my_profiled ef a
KOPS_STATE_STORE aponta para o local onde armazenaremos o estado do cluster:
export KOPS_STATE_STORE=s3://${AWS_PROFILE}-ops-us-west-1/kops
Escolha uma região da AWS para construir seu cluster. Nos exemplos abaixo eu escolhi us-west-1.
Veja quantas AZ a região escolhida possui e defina um CIDR para as subnets que serão criadas em
cada uma dessas AZ. Como us-west-1 possuí duas zonas utilizáveis (us-web-1b e us-west-1c), criarei
subnets /22 para elas. Precisamos também ter o par de chaves SSH que permitirá acesso aos hosts
do cluster armazenados em nossa máquina. Esse par de chaves pode ter sido criado no próprio painel
da AWS, caso em que você precisará extrair a chave pública do arquivo .pem baixado, ou pode ter
sido criado por você.
Page 2
Footer Tagline
COMPANY NAME
Address | Phone | Link | Email
--zones=us-west-1b,us-west-1c \
--name=${DOMAIN_NAME} \
--ssh-public-key=/path/to/key/${AWS_PROFILE}-kube.pub \
--admin-access=38.104.140.6/32,52.8.15.187/32 \
--networking=flannel \
--kubernetes-version=1.5.4 \
--image 595879546273/CoreOS-stable-1235.9.0-hvm
Este comando preparará o entorno da AWS para criar os componentes necessários para o
Kubernetes funcionar. Dizemos qual é a Cloud utilizada, qual a zona de DNS, os tamanhos das
instâncias (temos que começar com t2.small pois o Kubernetes não instalará numa t2.micro por falta
de memória), quantos masters e quantos nodes teremos, quais os CIDR de cada uma das nossas AZ,
qual o nome do nosso cluster, qual chave SSH utilizaremos (a chave pública será copiada
automaticamente para o arquivo de authorized_keys do usuário core), qual nossa versão do
Kubernetes e qual imagem utilizaremos.
a rk
kops update cluster ${DOMAIN_NAME} --yes
a t e rm
u l w
Teremos que aguardar algum tempo até que o cluster esteja totalmente pronto e funcionando.
t
Diversos componentes serão criados na AWS durante esse processo. Teremos ELB, hosts criados no
d ef a
Route53, instâncias no EC2 e muito mais. Enquanto aguardamos, gosto de rodar o comando abaixo
para verificar o status:
kubectl proxy
Deixe esse comando rodando e aponte seu browser para http://127.0.0.1:8001/ui. Você estará no
dashboard do seu cluster Kubernetes.
Page 3
Footer Tagline
COMPANY NAME
Address | Phone | Link | Email
No Linux, faça:
wget https://kubernetes-helm.storage.googleapis.com/helm-v2.2.2-linux-amd64.ta
tar xvfz helm-v2.2.2-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin
helm init
Para acessarmos o serviço, precisamos perguntar para a API do Kubernetes onde ele está e quais as
credenciais de acesso. Utilizaremos também o KOPS para conseguir essas informações:
Para acessar o cluster sem ter que colocar no browser o endereço do nosso domínio, podemos usar
assim:
No MAC OS-X:
open https://api.${DOMAIN_NAME}/
No Linux:
xdg-open https://api.${DOMAIN_NAME}/
Page 4
Footer Tagline
COMPANY NAME
Address | Phone | Link | Email
O usuário para acesso ao painel é admin e a senha foi a conseguida no passo de get secrets.
Destruindo o cluster
Para remover totalmente seu cluster e quaisquer objetos criados para ele na AWS, execute o seguinte
comando:
Category
1. IaC
Tags
1. AWS
2. Cloud
3. Docker
4. Kubernetes
a rk
Date Created
a t e rm
16/09/2019
u lt w
Author
mrbits
d ef a
Page 5
Footer Tagline