COMMON BASIC REQUIREMENTS FOR KOPS-RELATED LABS. PRE-FLIGHT CHECK: ΒΆ

Before rushing in to replicate any of the exercises, please ensure your basic environment is correctly setup. See the KOPS AWS tutorial for more information.

Ensure that the following points are covered and working in your environment:

  • AWS cli fully configured (aws account already with proper permissions/roles needed for kops). Depending on your distro, you can setup directly from packages, or if you want the most updated version, use "pip" and install awscli by issuing a "pip install awscli" command. Your choice!
  • Local ssh key ready on ~/.ssh/id_rsa / id_rsa.pub. You can generate it using "ssh-keygen" command if you don't have one already: ssh-keygen -t rsa -f ~/.ssh/id_rsa -P "".
  • Region set to us-east-1 (az's: us-east-1a, us-east-1b, us-east-1c, us-east-1d and us-east-1e). For most of our exercises we'll deploy our clusters in "us-east-1". For real HA at kubernetes master level, you need 3 masters. If you want to ensure that each master is deployed on a different availability zone, then a region with "at least" 3 availability zones is required here. You can still deploy a multi-master kubernetes setup on regions with just 2 az's or even 1 az but this mean that two or all your masters will be deployed on a single az and if this az goes offline then you'll lose two or all your masters. If possible, always pick a region with at least 3 different availability zones for real H.A. You always can check amazon regions and az's on the link: AWS Global Infrastructure. Remember: The masters are Kubernetes control plane. If your masters die, you loose control of your Kubernetes cluster.
  • kubectl and kops installed. For this last part, you can do this with using following commands. Next commands assume you are running a amd64/x86_64 linux distro:

As root (either ssh directly to root, local root console, or by using "sudo su -" previously):

cd ~
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
curl -LO https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d '"' -f 4)/kops-linux-amd64
chmod 755 kubectl kops-linux-amd64
mv kops-linux-amd64 kops
mv kubectl kops  /usr/local/bin

If you are not root and/or do you want to keep the kops/kubectl utilities in your own account:

cd ~
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
curl -LO https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d '"' -f 4)/kops-linux-amd64
chmod 755 kubectl kops-linux-amd64
mv kops-linux-amd64 kops
mkdir ~/bin
export PATH=$PATH:~/bin
mv kubectl kops  ~/bin

Finally, some of our exercises use the "jq" utility that is available on modern linux distributions. Please ensure to install it too. Some examples of how to do it:

Centos 7:

yum -y install epel-release
yum -y install jq

Debian7/Debian8/Debian9/Ubuntu1404lts/Ubuntu1604lts:

apt-get -y update
apt-get -y install jq

Also, if you are using OS X you can install jq using "Homebrew":

brew install jq

More information about "jq" on the following site: https://stedolan.github.io/jq/download/