Skip to content

Commit

Permalink
Add a couple of Kubernetes questions
Browse files Browse the repository at this point in the history
  • Loading branch information
abregman committed Jan 22, 2021
1 parent 7c5f66e commit acead18
Showing 1 changed file with 120 additions and 7 deletions.
127 changes: 120 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

:information_source:  This repo contains questions and exercises on various technical topics, sometimes related to DevOps and SRE :)

:bar_chart:  There are currently **1418** questions
:bar_chart:  There are currently **1435** questions

:busts_in_silhouette:  [Join](https://www.facebook.com/groups/538897960007080) our [Facebook group](https://www.facebook.com/groups/538897960007080) for additional exercises, articles and more resources on DevOps

Expand Down Expand Up @@ -169,8 +169,8 @@ For more info please read [here](https://www.atlassian.com/continuous-delivery/c
<details>
<summary>Would you prefer a "configuration->deployment" model or "deployment->configuration"? Why?</summary><br><b>

Both has advantages and disadvantages.
With "configuration->deployment" model for example, where you configure/build one image to be used by multiple deployments, there is less chance of deployments being different from one another so it has a clear advantage of a consistent environment.
Both have advantages and disadvantages.
With "configuration->deployment" model for example, where you build one image to be used by multiple deployments, there is less chance of deployments being different from one another, so it has a clear advantage of a consistent environment.
</b></details>

<details>
Expand All @@ -188,6 +188,7 @@ There are multiple approaches as to where to store the CI/CD pipeline definition

1. App Repository - store them in the same repository of the application they are building or testing
2. Central Repository - store all organization's/project's CI/CD pipelines in one separate repository
2. CI repo for every app repo - you separate CI related code from app code but you don't put everything in one place
</b></details>

<details>
Expand All @@ -200,6 +201,7 @@ There are multiple approaches as to where to store the CI/CD pipeline definition
* Logging
* Code review
* Code coverage
* Issue Tracking
* Containers and Containers Orchestration
* Tests</summary><br><b>
* CI/CD - Jenkins, Circle CI, Travis, Drone, Argo CD, Zuul
Expand All @@ -209,6 +211,7 @@ There are multiple approaches as to where to store the CI/CD pipeline definition
* Logging - Logstash, Graylog, Fluentd
* Code review - Gerrit, Review Board
* Code coverage - Cobertura, Clover, JaCoCo
* Issue tracking - Jira, Bugzilla
* Containers and Containers Orchestration - Docker, Podman, Kubernetes, Nomad
* Tests - Robot, Serenity, Gauge
</b></details>
Expand All @@ -235,6 +238,28 @@ to a server will result in a new server instead of updating it. Terraform is an
which follows the immutable infrastructure paradigm.
</b></details>

<details>
<summary>Explain "Software Distribution"</summary><br><b>

Read [this](https://venam.nixers.net/blog/unix/2020/03/29/distro-pkgs.html) fantastic article on the topic.

From the article: "Thus, software distribution is about the mechanism and the community that takes the burden and decisions to build an assemblage of coherent software that can be shipped."
</b></details>

<details>
<summary>Why are there multiple software distributions? What differences can they have?</summary><br><b>

Different distributions can focus on different things like: focus on different environments (server vs. mobile vs. desktop), support specific hardware, specialize in different domains (security, multimedia, ...), etc. Basically, different aspects of the software and what it supports, get different priority in each distribution.
</b></details>

<details>
<summary>What is a Software Repository?</summary><br><b>

Wikipedia: "A software repository, or “repo” for short, is a storage location for software packages. Often a table of contents is stored, as well as metadata."

Read more [here](https://en.wikipedia.org/wiki/Software_repository)
</b></details>

<details>
<summary>What ways are there to distribute software? What are the advantages and disadvantages of each method?</summary><br><b>

Expand Down Expand Up @@ -4708,7 +4733,7 @@ The master coordinates all the workflows in the cluster:
</b></details>

<details>
<summary>What do we need worker nodes for?</summary><br><b>
<summary>What do we need the worker nodes for?</summary><br><b>

The workers are the nodes which run the applications and workloads.
</b></details>
Expand All @@ -4717,12 +4742,41 @@ The workers are the nodes which run the applications and workloads.
<summary>True or False? Every cluster must have 0 or more master nodes and 1 or more workers</summary><br><b>

False. A Kubernetes cluster consists of at least 1 master and 0 or more workers.
</b></details>
</b></details>

#### Pod

<details>
<summary>Explain what is a pod</summary><br><b>
</b></details>

<details>
<summary>How many containers can a pod contain?</summary><br><b>

Multiple containers but in most cases it would be one container per pod.
</b></details>

<details>
<summary>What does it mean that "pods are ephemeral?</summary><br><b>

It means they would eventually die and pods are unable to heal so it is recommended that you don't create them directly.
</b></details>

<details>
<summary>What is a service in Kubernetes?</summary><br><b>

A permanent IP address that can be attached to a pod.
Even if connected, their lifecycles aren't connected.
</b></details>

<details>
<summary>What is the difference between an external and an internal service?</summary><br><b>
</b></details>

<details>
<summary>What is Ingress?</summary><br><b>
</b></details>

<details>
<summary>What are the components of the master node?</summary><br><b>

Expand Down Expand Up @@ -4768,14 +4822,29 @@ False. When a namespace is deleted, the resources in that namespace are deleted
* kube-public
</b></details>

<details>
<summary>What Kube Proxy does?</summary><br><b>
</b></details>

<details>
<summary>What is etcd?</summary><br><b>
</b></details>

<details>
<summary>True or False? application data is not stored in etcd</summary><br><b>

True
</b></details>

<details>
<summary>What "Resources Quotas" are used for and how?</summary><br><b>
</b></details>

<details>
<summary>Explain ConfigMaps</summary><br><b>
<summary>Explain ConfigMap</summary><br><b>

Separate configuration from pods.
It's good for cases where you might need to change configuration at some point but you don't want to restart the application or rebuild the image so you create a ConfigMap and connect it to a pod but externally to the pod.
</b></details>

<details>
Expand All @@ -4785,6 +4854,12 @@ Separate configuration from pods.
2. Attach it. Mount a configmap as a volume
</b></details>

<details>
<summary>Trur or False? Sensitive data, like credentials, should be stored in a ConfigMap</summary><br><b>

False. Use secret.
</b></details>

<details>
<summary>Explain "Horizontal Pod Autoscaler"</summary><br><b>

Expand Down Expand Up @@ -4961,7 +5036,7 @@ kubectl run nginx --image=nginx --restart=Never --port 80 --expose
</b></details>

<details>
<summary>Why to create kind deployment, if pods can be launched with replicaset ? </summary><br><b>
<summary>Why to create kind deployment, if pods can be launched with replicaset?</summary><br><b>
</b></details>

<details>
Expand Down Expand Up @@ -5102,6 +5177,26 @@ It includes:
<summary>What is kubconfig? What do you use it for?</summary><br><b>
</b></details>

<details>
<summary>What is a "Deployment" in Kuberenetes?</summary><br><b>
</b></details>

<details>
<summary>Can you use a Deployment for stateful applications?</summary><br><b>
</b></details>

<details>
<summary>Explain StatefulSet</summary><br><b>
</b></details>

<details>
<summary>What is the purpose of ReplicaSet?</summary><br><b>
</b></details>

<details>
<summary>How a ReplicaSet works?</summary><br><b>
</b></details>

#### Kubernetes Secrets

<details>
Expand Down Expand Up @@ -5141,6 +5236,12 @@ kubectl create secret generic some-secret --from-file=/some/file.txt
<summary>What is PersistentVolumeClaim?</summary><br><b>
</b></details>

<details>
<summary>True or False? Kubernetes manages data persistence</summary><br><b>

False
</b></details>

<details>
<summary>Explain Storage Classes</summary><br><b>
</b></details>
Expand Down Expand Up @@ -5197,6 +5298,12 @@ Kubectx, Kubens, ...
<summary>What is Kubeconfig?</summary><br><b>
</b></details>

#### Helm

<details>
<summary>What is Helm?</summary><br><b>
</b></details>

#### Submariner

<details>
Expand All @@ -5216,6 +5323,12 @@ You can learn more [here](https://submariner-io.github.io)
* Route Agent</summary><br><b>
</b></details>

#### Istio

<details>
<summary>What is Istio? What is it used for?</summary><br><b>
</b></details>

## Coding

<details>
Expand Down

0 comments on commit acead18

Please sign in to comment.