Create a Bare Metal K8S on AWS
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible
Install Terraform
Install AWS CLI
~ /workspace/k8s-aws/ansible master*
❯ export AWS_ACCESS_KEY_ID=' ********************************'
~ /workspace/k8s-aws/ansible master*
❯ export AWS_SECRET_ACCESS_KEY=' **************************************'
# or
~ /workspace/k8s-aws/terraform master*
❯ cat ~ /.aws/credentials
[default]
aws_access_key_id = **************************************
aws_secret_access_key = **************************************
[terraform]
aws_access_key_id = **************************************
aws_secret_access_key = **************************************
Replace all references of /home/bsantus/.aws
to your path
Prepare 3 hosts (1 master / 2 nodes)
~ /workspace/k8s-aws/*
❯ cd terraform
~ /workspace/k8s-aws/terraform*
❯ terraform init
~ /workspace/k8s-aws/terraform*
❯ terraform apply -var-file=variables.tfvars
~ /workspace/k8s-aws master*
❯ aws ec2 describe-instances --query " Reservations[*].Instances[*].{Name:Tags[0].Value,IP:PublicIpAddress}" --output=text
35.180.131.122 controlpane
35.180.156.33 node
35.180.86.140 node
Update ./ansible-kubeadm/inventory
Deploy the cluster using Ansible
~ /workspace/k8s-aws/ master*
❯ cd ansible-kubeadm
~ /workspace/k8s-aws/ansible-kubeadm master*
❯ ansible-playbook -v site.yml