Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
The DevOps 2.4 Toolkit

You're reading from  The DevOps 2.4 Toolkit

Product type Book
Published in Nov 2019
Publisher Packt
ISBN-13 9781838643546
Pages 398 pages
Edition 1st Edition
Languages
Concepts
Author (1):
Viktor Farcic Viktor Farcic
Profile icon Viktor Farcic

Table of Contents (12) Chapters

1. Deploying Stateful Applications at Scale 2. Enabling Process Communication with Kube API Through Service Accounts 3. Defining Continuous Deployment 4. Packaging Kubernetes Applications 5. Distributing Kubernetes Applications 6. Installing and Setting Up Jenkins 7. Creating a Continuous Deployment Pipeline with Jenkins 8. Continuous Delivery with Jenkins and GitOps 9. Now It Is Your Turn 10. Other Books You May Enjoy Appendix A: Installing kubectl and Creating a Cluster with minikube 1. Appendix B: Using Kubernetes Operations (kops)

Appendix B: Using Kubernetes Operations (kops)

The text that follows provides the essential information you'll need to create a Kubernetes cluster in AWS using kops. This appendix contains a few sub-chapters from The DevOps 2.3 Toolkit: Kubernetes (https://amzn.to/2GvzDjy). Please refer to it for more detailed information.

Preparing for the cluster setup

We'll continue using the specifications from the vfarcic/k8s-specs repository, so the first thing we'll do is to go inside the directory where we cloned it, and pull the latest version.

All the commands from this appendix are available in the 99-appendix-b.sh (https://gist.github.com/vfarcic/49bccadae317379bef6f81b4e5985f84) Gist.
 1  cd k8s-specs
2 3 git pull

I will assume that you already have an AWS account. If that's not the case, please head over to Amazon Web Services (https://aws.amazon.com/) and sign-up.

If you are already proficient with AWS, you might want to skim through the text that follows and only execute the commands.

The first thing we should do is get the AWS credentials.

Please open Amazon EC2 Console (https://console.aws.amazon.com/ec2/v2/home), click on your name from...

Creating a Kubernetes cluster in AWS

We'll start by deciding the name of our soon to be created cluster. We'll choose to call it devops23.k8s.local. The latter part of the name (.k8s.local) is mandatory if we do not have a DNS at hand. It's a naming convention kops uses to decide whether to create a gossip-based cluster or to rely on a publicly available domain. If this would be a "real" production cluster, you would probably have a DNS for it. However, since I cannot be sure whether you do have one for the exercises in this book, we'll play it safe, and proceed with the gossip mode.

We'll store the name into an environment variable so that it is easily accessible.

 1  export NAME=devops23.k8s.local

When we create the cluster, kops will store its state in a location we're about to configure. If you used Terraform, you'll notice...

Installing Ingress and Tiller (server side Helm)

To install Ingress, please execute the commands that follow.

 1  kubectl create \
 2      -f https://raw.githubusercontent.com/kubernetes/kops/master/
addons/ingress-nginx/v1.6.0.yaml
3 4 kubectl -n kube-ingress \ 5 rollout status \ 6 deployment ingress-nginx

Destroying the cluster

The appendix is almost finished, and we do not need the cluster anymore. We want to destroy it as soon as possible. There's no good reason to keep it running when we're not using it. But, before we proceed with the destructive actions, we'll create a file that will hold all the environment variables we used in this chapter. That will help us the next time we want to recreate the cluster.

 1  echo "export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
 2  export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
 3  export AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION
 4  export ZONES=$ZONES
 5  export NAME=$NAME" \
 6      >kops

We echoed the variables with the values into the kops file, and now we can delete the cluster.

 1  kops delete cluster \
 2      --name $NAME \
 3      --yes

The output is as follows.

...
Deleted kubectl config for...
lock icon The rest of the chapter is locked
arrow left Previous Chapter
You have been reading a chapter from
The DevOps 2.4 Toolkit
Published in: Nov 2019 Publisher: Packt ISBN-13: 9781838643546
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}