Book Image

kubectl: Command-Line Kubernetes in a Nutshell

By : Rimantas Mocevicius
Book Image

kubectl: Command-Line Kubernetes in a Nutshell

By: Rimantas Mocevicius

Overview of this book

The kubectl command line tool lets you control Kubernetes clusters to manage nodes in the cluster and perform all types of Kubernetes operations. This introductory guide will get you up to speed with kubectl in no time. The book is divided into four parts, touching base on the installation and providing a general overview of kubectl in the first part. The second part introduces you to managing Kubernetes clusters and working with nodes. In the third part, you’ll be taken through the different ways in which you can manage Kubernetes applications, covering how to create, update, delete, view, and debug applications. The last part of the book focuses on various Kubernetes plugins and commands. You’ll get to grips with using Kustomize and discover Helm, a Kubernetes package manager. In addition to this, you’ll explore how you can use equivalent Docker commands in kubectl. By the end of this book, you’ll have learned how to install and update an application on Kubernetes, view its logs, and inspect clusters effectively.
Table of Contents (16 chapters)
1
Section 1: Getting Started with kubectl
3
Section 2: Kubernetes Cluster and Node Management
6
Section 3: Application Management
10
Section 4: Extending kubectl

Describing nodes

The kubectl describe command allows us to get the state, metadata, and events of an object in a Kubernetes cluster. In this section, we will use it to describe the node.

We have got a list of nodes, so let's check out one of them:

  1. To describe a node, run the following command:
    $ kubectl describe node gke-kubectl-lab-default-pool-b3c7050d-6s1l

    As the command's output is quite big, we are going to show only some parts of it. You can check out the full output yourself.

  2. In the following screenshot, we see the assigned Labels (which can be used to organize and select subsets of objects) and Annotations (extra information about the node is stored there) for the node, and Unschedulable: false means that the node accepts pods to be scheduled on to it. For example, Labels can be used for Node Affinity (which allows us to constrain which nodes the pod is eligible to be scheduled on, based on the labels on the node) to schedule pods on particular nodes...