Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Arrow up icon
GO TO TOP
Kubernetes for Developers

You're reading from   Kubernetes for Developers Use Kubernetes to develop, test, and deploy your applications with the help of containers

Arrow left icon
Product type Paperback
Published in Apr 2018
Publisher Packt
ISBN-13 9781788834759
Length 374 pages
Edition 1st Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
Joseph Heck Joseph Heck
Author Profile Icon Joseph Heck
Joseph Heck
Arrow right icon
View More author details
Toc

Table of Contents (16) Chapters Close

Title Page
Packt Upsell
Contributors
Preface
1. Setting Up Kubernetes for Development FREE CHAPTER 2. Packaging Your Code to Run in Kubernetes 3. Interacting with Your Code in Kubernetes 4. Declarative Infrastructure 5. Pod and Container Lifecycles 6. Background Processing in Kubernetes 7. Monitoring and Metrics 8. Logging and Tracing 9. Integration Testing 10. Troubleshooting Common Problems and Next Steps 1. Other Books You May Enjoy Index

Index

A

  • annotations
    • about / Kubernetes resource – Annotations
    • exposing, in Pods / Exposing labels and annotations in Pods
  • Apache benchmark / Choosing requests and limits for your containers
  • automatic labels / Automatic labels and selectors
  • automatic selectors / Automatic labels and selectors

B

  • Bats / Simple validation with Bats
  • Brigade
    • reference link / Brigade
    • about / Brigade

C

  • Celery
    • worker queue, example / A worker queue example with Python and Celery, Celery worker example
    • reference link / Celery worker example
    • RabbitMQ / RabbitMQ and configuration
    • worker, creating / Celery worker
  • celery-worker / Celery worker example
  • Clair
    • reference link / Container registries
  • Cloud Native Computing Foundation (CNCF) / Installing and using Elasticsearch, Fluentd, and Kibana
  • CMD command
    • reference link / Dockerfile commands
  • code
    • deploying, with kubectl / Deploying with kubectl
  • Concourse
    • reference link / Continuous integration with Kubernetes
  • ConfigMap
    • about / Kubernetes resource – ConfigMap
    • creating / Creating a ConfigMap
    • managing / Managing ConfigMaps
    • configuration, exposing into container images / Exposing the configuration into your container images
    • environment variables / Environment variables
    • exposing, as files inside container / Exposing ConfigMap as files inside the container
    • dependencies / Dependencies on ConfigMaps
    • using, with Python/Flask / Using the ConfigMap within Python/Flask
  • ConfigParser
    • reference link / Using the ConfigMap within Python/Flask
  • container
    • about / Kubernetes concept – container
    • code, writing / Writing your code for Pods and Containers
    • creating / Making your first container
    • notes, writing for software execution / Practical notes for writing software to run in a container
    • options, obtaining / Getting options for your executable code
    • output, sending from program / Sending output from your program
    • Secrets, exposing / Exposing Secrets into a container
    • initializing / Initialization containers
    • interactive testing / Quick interactive testing
  • container images
    • about / Container images
    • tagging / Tagging your container images
    • considerations / Practical notes for building container images
    • updating, with kubectl set command / Updating with the kubectl set command
  • container lifecycle / Container lifecycle
  • container lifecycle hooks / Container lifecycle hooks
  • container registry / Container registries
  • continuous integration, with Kubernetes
    • about / Continuous integration with Kubernetes
    • Travis.CI / Continuous integration with Kubernetes
    • Drone.IO / Continuous integration with Kubernetes
    • Gitlab / Continuous integration with Kubernetes
    • Jenkins / Continuous integration with Kubernetes
    • Concourse / Continuous integration with Kubernetes
  • controllers / Controllers
  • COPY command
    • reference link / Dockerfile commands
  • CrashLoopBackOff
    • about / CrashLoopBackOff
    • image, inspecting / Starting and inspecting the image
    • setup, adding to container / Adding your own setup to the container 
  • CronJob / CronJob
  • custom resource
    • defining / Custom Resource Definition
    • reference link / Custom Resource Definition

D

  • debugging techniques
    • about / More debugging techniques
    • interactive deployment, of image / Interactive deployment of an image
    • attaching, to running Pod / Attaching to a running Pod
    • second process, running in container / Running a second process in a container
  • declarative commands
    • versus imperative commands / Imperative versus declarative commands
  • deployment
    • about / Kubernetes resource – Deployment, Deployments and rollouts
    • creating / Creating a simple deployment
    • reference link / Creating a simple deployment
  • deployment declaration
    • about / Declaring your first application
    • ImagePullPolicy / ImagePullPolicy
    • audit trail / Audit trail
  • distributed tracing
    • with Jaeger / Distributed tracing with Jaeger
  • DNS services / DNS for services
  • Docker
    • installation link / What you need for development
    • verifying / Verifying Docker
    • container registries / Container registries
  • Dockerfile
    • writing / Dockerfile commands
    • reference link / Dockerfile commands
  • Dockerfile, commands
    • about / Dockerfile commands
    • FROM / Dockerfile commands
    • RUN / Dockerfile commands
    • ENV / Dockerfile commands
    • COPY / Dockerfile commands
    • WORKDIR / Dockerfile commands
    • LABEL / Dockerfile commands
    • CMD / Dockerfile commands
  • Docker images
    • creating / Verifying Docker
    • clearing / Clearing and cleaning Docker images
    • cleaning / Clearing and cleaning Docker images
  • Draft
    • reference link / Draft
    • about / Draft
  • Drone.IO
    • reference link / Continuous integration with Kubernetes

E

  • Elasticsearch
    • using / Installing and using Elasticsearch, Fluentd, and Kibana
    • installing / Installing and using Elasticsearch, Fluentd, and Kibana
    • log aggregation / Log aggregation with EFK
    • reference link / Log aggregation with EFK
  • Elasticsearch, Fluentd, and Kibana (EFK) / Architecture of Jaeger distributed tracing
  • emerging projects, for developers
    • about / Emerging projects for developers
    • linters / Linters
    • Helm / Helm
    • ksonnet / ksonnet
    • Brigade / Brigade
    • skaffold / skaffold
    • img / img
    • Draft / Draft
    • ksync / ksync
    • Telepresence / Telepresence
  • end-to-end tests / Testing strategies using Kubernetes
  • ENV command
    • reference link / Dockerfile commands
  • ErrImagePull / ErrImagePull
  • errors
    • about / Common errors and how to resolve them
    • resolving / Common errors and how to resolve them
    • ErrImagePull / ErrImagePull
    • CrashLoopBackOff / CrashLoopBackOff
    • no endpoints available for service / No endpoints available for service
    • stuck, in Pod Initializing / Stuck in PodInitializing
  • error validating data
    • about / Error validating data
    • documentation, navigating / Navigating the documentation
  • example application
    • tracing, adding / Example – adding tracing to your application
    • tracing collector, adding to pod / Adding a tracing collector to your pod
    • libraries, adding / Add the libraries and code to generate traces
    • code, used for generating traces / Add the libraries and code to generate traces
    • traces adding, considerations / Considerations for adding tracing

F

  • Flask
    • reference link / Example – Python/Flask container image
  • Fluentd
    • reference link / Installing and using Elasticsearch, Fluentd, and Kibana
    • installing / Installing and using Elasticsearch, Fluentd, and Kibana
    • using / Installing and using Elasticsearch, Fluentd, and Kibana
    • log aggregation / Log aggregation with EFK
  • forums
    • reference link / Mailing lists and forums
  • FROM command
    • reference link / Dockerfile commands
  • functional tests / Testing strategies using Kubernetes

G

  • Gitlab
    • reference link / Continuous integration with Kubernetes
  • Grafana
    • installing / Installing Grafana

H

  • headless service / Headless service
  • Helm
    • reference link / Capturing metrics with Prometheus, Next steps, Helm
    • installing / Installing Helm
    • installation link / Installing Helm, Installing Jenkins using Helm
    • used, for installing Prometheus / Installing Prometheus using Helm
    • used, for installing Jenkins / Installing Jenkins using Helm
    • about / Helm

I

  • img
    • about / img
    • reference link / img
  • imperative commands
    • versus declarative commands / Imperative versus declarative commands
  • integration testing, with Node.js
    • example / Example – integration testing with Node.js
    • cluster health, validating / Validating the cluster health
    • deploying, with kubectl / Deploying with kubectl
    • waiting for pods, availability / Waiting for the pods to become available
    • deployment, interacting / Interacting with the deployment
    • deployment interaction / Interacting with the deployment
  • integration testing, with Python
    • example / Example – integration testing with Python
    • PyTest / PyTest and pytest-dependency
    • PyTest-dependency / PyTest and pytest-dependency
    • PyTest fixtures / PyTest fixtures and the python-kubernetes client
    • python-kubernetes client / PyTest fixtures and the python-kubernetes client
    • wait, state changes / Waiting for state changes
    • deployment, accessing / Accessing the deployment
  • integration tests / Testing strategies using Kubernetes
  • interactive/exploratory tests / Testing strategies using Kubernetes

J

  • Jaeger
    • distributed tracing / Distributed tracing with Jaeger
    • reference link / Distributed tracing with Jaeger
    • traces / Spans and traces
    • spans / Spans and traces
    • architecture / Architecture of Jaeger distributed tracing
    • version / Trying out Jaeger
  • Jenkins
    • reference link / Continuous integration with Kubernetes
    • using / Example – using Jenkins and the Kubernetes plugin
    • installing, with Helm / Installing Jenkins using Helm
    • accessing / Accessing Jenkins
    • updating / Updating Jenkins
  • Jenkins chart
    • reference link / Example – using Jenkins and the Kubernetes plugin
  • Jenkins pipelines
    • example / Example pipeline
    • reference link / Next steps with pipelines
  • Jenkins user documentation
    • reference link / Next steps with pipelines
  • job
    • in Kubernetes / Job
  • jq
    • reference link / Optional tools
  • Jsonnet
    • reference link / Next steps
  • JSONPATH command / SIDEBAR – JSONPATH

K

  • Kibana
    • installing / Installing and using Elasticsearch, Fluentd, and Kibana
    • using / Installing and using Elasticsearch, Fluentd, and Kibana
    • log aggregation / Log aggregation with EFK
    • reference link / Log aggregation with EFK
    • used, for viewing logs / Viewing logs using Kibana
    • app, filtering / Filtering by app
    • Lucene query language / Lucene query language
    • executing, in production / Running Kibana in production
  • ksonnet
    • reference link / Next steps, ksonnet
    • about / ksonnet
  • ksync
    • reference link / ksync
    • about / ksync
  • kube-lint
    • about / Linters
    • reference link / Linters
  • kubectl
    • installation link / What you need for development
    • default namespaces, getting from Kubernetes resources / Looking at what's built-in and included with Minikube
    • used, for listing resources with labels / Listing resources with labels using kubectl
  • kubectl set command
    • used, for updating container images / Updating with the kubectl set command
  • Kubernetes
    • software, installing / What you need for development
    • optional tools / Optional tools
    • resources, representing / Representing Kubernetes resources
    • reference link / Container images
    • persistence / Persistence with Kubernetes
    • volumes / Volumes
    • PersistentVolume / PersistentVolume and PersistentVolumeClaim
    • PersistentVolumeClaim / PersistentVolume and PersistentVolumeClaim
    • built-in metrics / Built-in metrics with Kubernetes
    • concept / Kubernetes concept – Quality of Service, A Kubernetes concept – DaemonSet
    • container, request selecting / Choosing requests and limits for your containers
    • container, limits selecting / Choosing requests and limits for your containers
    • testing strategies / Testing strategies using Kubernetes
  • kubernetes-client
    • reference link / PyTest fixtures and the python-kubernetes client
  • Kubernetes API
    • reference link / A wall of YAML
  • Kubernetes blog
    • reference link / Interacting with the Kubernetes project
  • Kubernetes plugin
    • using / Example – using Jenkins and the Kubernetes plugin
  • Kubernetes project
    • interacting with / Interacting with the Kubernetes project
  • kubetest
    • about / Linters
    • reference link / Linters
  • kubeval
    • about / Linters
    • reference link / Linters

L

  • LABEL command
    • reference link / Dockerfile commands
  • labels
    • about / Kubernetes concepts – labels
    • maintaining / Organization of labels
    • viewing / Viewing labels
    • resources, listing with / Listing resources with labels using kubectl
    • exposing, in Pods / Exposing labels and annotations in Pods
  • linters / Linters
  • liveness probe
    • about / Liveness probe
    • methods / Liveness probe
  • LoadBalancer
    • reference link / Service type – LoadBalancer
  • local cluster
    • enabling / Getting a local cluster up and running
    • executing / Getting a local cluster up and running
    • resetting / Resetting and restarting your cluster
    • restarting / Resetting and restarting your cluster
  • logs
    • about / Logs
    • Pods, with multiple containers / Pods with more than one container
    • streaming / Streaming the logs
    • previous logs / Previous logs
    • timestamps / Timestamps
    • viewing, Kibana used / Viewing logs using Kibana
  • Lucene query language
    • reference link / Lucene query language

M

  • mailing lists
    • reference link / Mailing lists and forums
  • Minikube
    • installation link / What you need for development
    • web-based dashboard, creating for Kubernetes cluster / Looking at what's built-in and included with Minikube
    • using, with Travis.CI / Example – using Minikube with Travis.CI
  • Minikube service / Minikube service

N

  • namespaces / Namespaces
  • Node
    • about / Kubernetes resource – Node
    • networks / Networks
    • controllers / Controllers
  • Node.js/Express container image
    • example / Example – Node.js/Express container image
    • container, building / Building the container
    • container, executing / Running your container
    • port forwarding / Port forwarding
    • proxy command / Proxy
    • logs, getting from application / Getting logs from your application
  • Node.js dependencies
    • with mocha / Node.js tests and dependencies with mocha and chai
    • with chai / Node.js tests and dependencies with mocha and chai
  • Node.js example
    • probes, adding / Adding a probe to our Node.js example
    • Stateful Set used / A Node.js example using Stateful Set
  • Node.js tests
    • with mocha / Node.js tests and dependencies with mocha and chai
    • with chai / Node.js tests and dependencies with mocha and chai
  • NodePort / Service type – NodePort

O

  • Open Container Initiative (OCI)
    • reference link / Kubernetes concept – container, Container images
  • OpenZipkin
    • reference link / Distributed tracing with Jaeger

P

  • performance tests / Testing strategies using Kubernetes
  • Pod lifecycle
    • about / Pod lifecycle
    • container lifecycle / Container lifecycle
    • deployments / Deployments, ReplicaSets, and Pods
    • ReplicaSets / Deployments, ReplicaSets, and Pods
    • Pods / Deployments, ReplicaSets, and Pods
    • Kubernetes code, using / Getting a snapshot of the current state
    • Kubernetes, Pod conditions / Getting a snapshot of the current state
  • Pods
    • about / Kubernetes resource – Pod
    • reference link / Kubernetes resource – Pod, Creating a simple deployment
    • namespaces / Namespaces
    • code, writing / Writing your code for Pods and Containers
    • service, discovering / Discovering services from within your Pod
    • labels, exploring / Exposing labels and annotations in Pods
    • annotations, exploring / Exposing labels and annotations in Pods
  • Pods Information, exposes
    • reference link / Exposing labels and annotations in Pods
  • probes
    • about / Getting a snapshot of the current state, Probes 
    • liveness probe / Liveness probe
    • readiness probe / Readiness probe
    • adding, Python example / Adding a probe to our Python example
    • adding, to Node.js example / Adding a probe to our Node.js example
  • Prometheus
    • metrics capture / Capturing metrics with Prometheus
    • reference link / Capturing metrics with Prometheus, Using Prometheus to view application metrics
    • installing, Helm used / Installing Prometheus using Helm
    • metrics, viewing / Viewing metrics with Prometheus 
    • used, to view application metrics / Using Prometheus to view application metrics
    • flask metrics / Flask metrics with Prometheus
    • Node.js metrics / Node.js metrics with Prometheus
    • service signals / Service signals in Prometheus
  • Prometheus chart
    • reference link / Installing Prometheus using Helm
  • PyTest
    • reference link / Example – integration testing with Python
    • about / PyTest and pytest-dependency
  • PyTest-dependency / PyTest and pytest-dependency
  • PyTest fixtures / PyTest fixtures and the python-kubernetes client
  • Python
    • Redis, using from / Using Redis from Python
    • worker queue, example / A worker queue example with Python and Celery
  • python-kubernetes client / PyTest fixtures and the python-kubernetes client
  • Python/Flask
    • ConfigMap, using / Using the ConfigMap within Python/Flask
  • Python/Flask container image
    • example / Example – Python/Flask container image
    • container, building / Building the container
    • container, executing / Running your container
    • Pod name / Pod name
    • port forwarding / Port forwarding
    • proxy command / Proxy
    • logs, getting from application / Getting logs from your application
  • Python/Flask deployment, with ConfigMap
    • example / Example – Python/Flask deployment with ConfigMap
  • Python example
    • probes, adding / Adding a probe to our Python example
    • code, executing / Running the Python probes example

R

  • RabbitMQ
    • reference link / RabbitMQ and configuration
  • ramp load test / Choosing requests and limits for your containers
  • readiness probe / Readiness probe
  • Redis
    • example service / Example service – Redis
    • reference link / Example service – Redis, PersistentVolume and PersistentVolumeClaim
    • using, from Python / Using Redis from Python
    • Flask deployment, updating / Updating the Flask deployment
  • Redis service
    • finding / Finding the Redis service
  • ReplicaSet
    • about / Kubernetes resource – ReplicaSet
    • reference link / Creating a simple deployment
  • Role-Based Access Control (RBAC) / Secrets and security – how secret are the secrets?
  • rollouts
    • about / Deployments and rollouts
    • overview / Rollout history
    • undo command / Rollout undo
  • RUN command
    • reference link / Dockerfile commands

S

  • Secrets
    • about / Kubernetes resource – Secrets, Secrets and security – how secret are the secrets?
    • exposing, into container / Exposing Secrets into a container
  • selectors / Kubernetes concepts – selectors
  • service
    • about / Kubernetes resources – service
    • endpoints / Endpoints
    • headless service / Headless service
    • discovering, from within Pod / Discovering services from within your Pod
    • exposing, outside cluster / Exposing services outside the cluster
  • service resource
    • defining / Defining a service resource
  • service type
    • ExternalName / Service type – ExternalName
    • LoadBalancer / Service type – LoadBalancer
    • NodePort / Service type – NodePort
  • SIG
    • reference link / Interacting with the Kubernetes project
  • SIGTERM
    • handling / Handling a graceful shutdown
    • handling, in Python / SIGTERM in Python
    • handling, in Node.js / SIGTERM in Node.js
  • Simple Queue Service (SQS) / A worker queue example with Python and Celery
  • skaffold
    • reference link / skaffold
    • about / skaffold
  • Slack
    • about / Slack
    • reference link / Slack
  • Stack Overflow
    • reference link / Stack Overflow
  • Stateful Set
    • about / Stateful Sets
    • used, in Node.js example / A Node.js example using Stateful Set
  • storage classes
    • reference link / PersistentVolume and PersistentVolumeClaim
  • Stuck in Pod Initializing error
    • about / Stuck in PodInitializing
    • missing resources / Missing resources
  • Swagger / Representing Kubernetes resources

T

  • Telepresence
    • about / Telepresence
    • reference link / Telepresence
  • testing
    • resources, reviewing / Reviewing resources needed for testing
  • testing patterns
    • about / Patterns of using Kubernetes with testing
    • tests local, in Kubernetes / Tests local and system-under-test in Kubernetes
    • system-under-test, in Kubernetes / Tests local and system-under-test in Kubernetes
    • tests local, in Kubernetes namespaces / Tests local and system-under-test in Kubernetes namespaces
    • system-under-test, in Kubernetes namespaces / Tests local and system-under-test in Kubernetes namespaces, Tests in Kubernetes and system-under-test in Kubernetes namespaces
    • tests, in Kubernetes / Tests in Kubernetes and system-under-test in Kubernetes namespaces
  • testing strategies / Testing strategies using Kubernetes
  • Travis.CI
    • reference link / Continuous integration with Kubernetes
    • Minikube, using with / Example – using Minikube with Travis.CI

U

  • unit tests / Testing strategies using Kubernetes

V

  • validation
    • with Bats / Simple validation with Bats
  • Vault
    • reference link / Secrets and security – how secret are the secrets?

W

  • WORKDIR command
    • reference link / Dockerfile commands

Y

  • YAML configurations / A wall of YAML
  • YouTube
    • about / YouTube
    • reference link / YouTube
lock icon The rest of the chapter is locked
arrow left Previous Section
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 £13.99/month. Cancel anytime
Visually different images