Kubernetes Cluster | Kubernetes システム |
Master Node | 管理ノード。ここが死ぬとKubernetes全体が死ぬので、本番システムでは3台以上で冗長化する |
Node | 計算ノード |
kubectl | 管理コマンド。RancherではWebから実行できる |
kube apiserver | kuberctlからの処理依頼を受付 |
kube scheduler | Nodeを管理して、どの Node で Pod を動かすかを制御 |
kube control management | Kubernetes の資産を管理 |
etcd | 分散KVS。Kubernetes自体の設定内容を格納 |
namespace | Podの論理的な管理単位。初期設定で Default が作られている |
Pod | Containerの論理的な単位。Nodeをまたぐことはない |
Service | Pod (内の Container 上で動くアプリ) 同士で通信する場合に、パケットのルーティングを行う |
+--------------+ | Pod | | | 172.17.0.3 | Nginx(80)----+-8080---- | Container | | | | | | (5432) | | Postgis | | Container | +--------------+Port変換で、Container上で動いているアプリが listen している Port を Pod 外に公開する
Cluster IP Serice | Pod間で通信をするための Service。通常 Service と言ったら Cluster IP Service |
Node Port IP Service | あるノード(物理マシン)の Port 経由で Pod にアクセスするための Service |
External Name Service | Pod から namespace 外のサービスを呼び出すための Serivce |
Load Balancer Service | 大規模 Kubernetes で、物理 Load Balancer と連携するための Service の総称。AWS とか Google Cloud Platform のうらで動いている Service |
Replica Set | 同一構成のPodの組。並列性能の向上、障害対応のために用いる |
Deployment | 本番サービスでは Deployment でアプリを管理。過去の Replica Set をもっていて、Replica Set に対してダウンタイムがないようにバージョンアップやロールバックを行える |
IN Port | Label |
4848ポートに来たパケットは | "本番環境の管理アプリ" ラベルのPodにルーティング |
8080ポートに来たパケットは | "本番環境" ラベルのPodにルーティング |
14848ポートに来たパケットは | "テスト環境の管理アプリ" ラベルのPodにルーティング |
18080ポートに来たパケットは | "テスト環境" ラベルのPodにルーティング |
PV (Persistent Volume) | Kubernetes 上で動くアプリケーションのデータを格納する領域。まとめて確保して PVC に切り出す |
PVC (Persistent Volume Claim) | Pod が必要とするデータ領域のスペックと容量の要求(Claim)。Claim をもとに自動的に適切な PV が選ばれて PVC のデータ領域が作られる。通常は Volume Container が作られる |
Pod | Pod では、PVC の name とアプリケーションからのマウントポイントを決める |
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-data
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 8Gi
storageClassName: ssd
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs001
spec:
capacity:
storage: 500Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Recycle
storageClassName: ssd
mountOptions:
- hard
nfs:
path: /opt/nfs
server: ai-chan.local
Retain | PVCが削除されても、データ領域(Volume Container)を残す |
Recycle | PVCが削除されたら、データ領域(Volume Container)の中身を削除する |
Delete | PVCが削除されたら、データ領域(Volume Container)を削除する |
$ sudo docker run -d --restart=unless-stopped -p 10080:80 -p 10443:443 rancher/rancher:latest