Kubernetes Server

Kubernetesの概要

2024年2月8日



概要

Kubernetes関連の用語が多いが、下記のように理解している。

リソースの最小単位であるPodを管理(Podの増減やどのワーカーに配置するとか)するのがReplicasetで、さらにReplicasetの管理をDeployment(定義ファイルをyamlで作成して適用)で行う。

Podへは、名前空間に紐づくClusterIPからアクセスが可能。

ClusterIPはクラスタ内部からのみアクセス可能な受け口であり、外部からもアクセス可能にしたい場合はNordPort(or LB or Ingress)を作成して、ClusterIPと紐づける

ClusterIPはService(定義ファイルをyamlで作成して適用)によって作成する

下図の例においては、dashboardは名前空間「kube-system」、nginxは名前空間「default」のClusterIPを利用することになる。

Podは、ReplicaとServiceのダブル班長で管理されるものである

Kubernetes相関図

microk8sのdashboardの場合

– microk8sのdashboardを例にして、各要素の関係が下図になる

– 各要素のステータスは下記の通り


$ kubectl get all -o wide --all-namespaces | grep -e NAMESPACE -e dashboard
NAMESPACE     NAME                                             READY   STATUS    RESTARTS   AGE   IP                NODE                      NOMINATED NODE   READINESS GATES
kube-system   pod/kubernetes-dashboard-fc86bcc89-nwvfp         1/1     Running   0          35m   10.1.2.68         k8s-master.local              
kube-system   pod/dashboard-metrics-scraper-5cb4f4bb9c-cqgb4   1/1     Running   0          35m   10.1.2.69         k8s-master.local              
NAMESPACE     NAME                                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE   SELECTOR
kube-system   service/kubernetes-dashboard        ClusterIP   10.152.183.94            443/TCP                  35m   k8s-app=kubernetes-dashboard
kube-system   service/dashboard-metrics-scraper   ClusterIP   10.152.183.181           8000/TCP                 35m   k8s-app=dashboard-metrics-scraper
NAMESPACE     NAME                         DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE   CONTAINERS    IMAGES                          SELECTOR
NAMESPACE     NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS                  IMAGES                                                 SELECTOR
kube-system   deployment.apps/kubernetes-dashboard        1/1     1            1           35m   kubernetes-dashboard        kubernetesui/dashboard:v2.7.0                          k8s-app=kubernetes-dashboard
kube-system   deployment.apps/dashboard-metrics-scraper   1/1     1            1           35m   dashboard-metrics-scraper   kubernetesui/metrics-scraper:v1.0.8                    k8s-app=dashboard-metrics-scraper
NAMESPACE     NAME                                                   DESIRED   CURRENT   READY   AGE   CONTAINERS                  IMAGES                                                 SELECTOR
kube-system   replicaset.apps/kubernetes-dashboard-fc86bcc89         1         1         1       35m   kubernetes-dashboard        kubernetesui/dashboard:v2.7.0                          k8s-app=kubernetes-dashboard,pod-template-hash=fc86bcc89
kube-system   replicaset.apps/dashboard-metrics-scraper-5cb4f4bb9c   1         1         1       35m   dashboard-metrics-scraper   kubernetesui/metrics-scraper:v1.0.8                    k8s-app=dashboard-metrics-scraper,pod-template-hash=5cb4f4bb9c

microk8sのnginxコンテナクラスタの場合

– microk8sのnginxコンテナ3個で構成するクラスタの場合は下記のようになる
– Deploymentはラベルを使い、それをServiceのSelectorで指定することで、クライアントからのリクエストを転送するPod(nginxコンテナ)を判別している

– 各要素のスタータスは下記の通り


$ kubectl get all -o wide --all-namespaces | grep -e NAMESPACE -e nginx
NAMESPACE     NAME                                             READY   STATUS    RESTARTS      AGE     IP                NODE                      NOMINATED NODE   READINESS GATES
default       pod/nginx-deployment-f7599d4c-x9g76              1/1     Running   0             5m33s   10.1.2.71         k8s-mster.local              
default       pod/nginx-deployment-f7599d4c-sb4p5              1/1     Running   0             5m33s   10.1.210.65       k8s-worker1.local               
default       pod/nginx-deployment-f7599d4c-4vsrw              1/1     Running   0             5m33s   10.1.210.66       k8s-worker1.local               
NAMESPACE     NAME                                TYPE           CLUSTER-IP       EXTERNAL-IP       PORT(S)                  AGE    SELECTOR
default       service/nginx                       LoadBalancer   10.152.183.176   192.168.9.3   80:30327/TCP             28m    app=nginx
NAMESPACE     NAME                         DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE    CONTAINERS    IMAGES                          SELECTOR
NAMESPACE     NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE     CONTAINERS                  IMAGES                                                 SELECTOR
default       deployment.apps/nginx-deployment            3/3     3            3           5m33s   nginx                       nginx:1.7.9                                            app=nginx
NAMESPACE     NAME                                                   DESIRED   CURRENT   READY   AGE     CONTAINERS                  IMAGES                                                 SELECTOR
default       replicaset.apps/nginx-deployment-f7599d4c              3         3         3       5m33s   nginx                       nginx:1.7.9                                            app=nginx,pod-template-hash=f7599d4c

CATEGORIES & TAGS

Kubernetes, Server,

Author:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

カテゴリー

むるし

フリーランスのインフラ系エンジニア。
備忘録で色々書いていきます。
お問い合わせは↓
mo-gyu@murci.net
LPIC303 Security
%d人のブロガーが「いいね」をつけました。