---
# System prepended metadata

title: k8s勉強メモ（用語まとめ）

---

# k8s勉強メモ（用語まとめ）

<blockquote class="twitter-tweet" data-lang="ja"><p lang="en" dir="ltr">kubectl is the new ssh. Limit access and only use it for deployments when better tooling is not available.</p>&mdash; Kelsey Hightower (@kelseyhightower) <a href="https://twitter.com/kelseyhightower/status/1070413458045202433?ref_src=twsrc%5Etfw">2018年12月5日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

💛💛💛

---

## Cluster / Context

* k8sの全体。この大枠で管理される？
* Contextは、ローカルから接続するクラスタを管理する仕組み？
    * `$HOME/.kube/config`や`$KUBECONFIG`にあるymlで管理される

```bash
# 確認
$ kubectl config get-contexts

# 現在の変更
$ kubectl config use-context <<変更したいContext>>

# 削除
$ kubectl config delete-context <<削除したいContext>>
```

## Node

* つまりインスタンス？
    * master：k8s自体を管理するNode
    * node：アプリケーションが動くNode

→ EKSやGKEの場合はmaster nodeはマネージドで提供される。

```bash
# 確認
$ kubectl get nodes
$ kubectl describe nodes <<name>>
```

## NameSpace

* 名前空間
* 設定によりNameSpace間のアクセスを許可/拒否できるらしい

```bash
# 確認
$ kubectl get namespaces

# 今のNameSpace確認
$ kubectl config view | grep namespace

# 変更
$ kubectl config set-context <<current-context>> --namespace=<<変更したいNameSpace>>
```

---

## Pod

* コンテナの集まり？
* 1つのPodは同じNodeに存在する

```bash
# 確認
$ kubectl get po
$ kubectl describe po <<name>>
```

## ReplicaSet

* Podを生成・管理する
> PodTemplateと呼ばれるPodのテンプレートをもとに、Podを指定された数(レプリカ数)に調整・管理を行う仕組みです。Podがレプリカ数より足りない場合はPodを追加し、多い場合はをPodを削除します。この仕組みによってノードの障害やアプリケーションのクラッシュでPodが足りなくなった際も自動的にPodが追加され、セルフヒーリングが実現されています。

```bash
# 確認
$ kubectl get rs
```

## Deployment

* 新しいバージョンのリリースを管理するための仕組み？
* Deployment は ReplicaSet を管理する

```bash
# 確認
$ kubectl get deployments

# 履歴確認(古 -> 新)
$ kubectl rollout history deployments <<name>>
```

---

## Service

* ロードバランサー的なもの？
* ReplicaSetに分散してアクセスする

```bash
# 確認
$ kubectl get svc
```

## Ingress

いけてるやつ

```bash
$ kubectl get ingress
```
## Backend Config

```bash
$ kubectl get backendconfig
```

---

### 参考
* [良い子のためのKubernetesガイド-Qiita](https://qiita.com/skmt719/items/93077ebb58ea44fbc460)
* [Kubernetes の Pod / ReplicaSet / Deployment について、ようやく整理できた](https://blog.a-know.me/entry/2018/08/14/185324)
* [kubernetes : kubectlコマンド一覧 - Qiita](https://qiita.com/suzukihi724/items/241f7241d297a2d4a55c)
