(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【minikube&k8s】/etc/kubernetes配下のファイルを確認する

スポンサーリンク

はじめに

minikubeにログインする際はminikube sshを用いますが

ログイン時はdockerユーザであるためコマンド実行時に権限不足となる場合があります。

本記事はKubernetes関連の設定ファイルが格納される

/etc/kubernetes

配下を調査した結果をシェアします。

環境情報
  • Kubernetes v1.17(minikube)
  • Buildroot 2019.02.7(minikubeのos-release)

rootユーザにスイッチ

ログイン時はdockerユーザですが

$ whoami
docker

以下にてパスワードを求められることなくrootユーザにスイッチできます。

$ su -
# 

ちなみにminikube上のユーザを見てみましたが確かにrootユーザにはパスワードは設定されていませんでした。

# cat /etc/shadow
root::10933:0:99999:7:::
...
docker:$6$1DJnnoKf2FeWo7J$fyC.1A5MKXNiIOWe0Yh1lVi/RRGFk7ahQKWE3bqmsDcLEpTGB4ZbapaDqr
vvvMqdJwnsRimIHAwJoJO2MNhpT0:::::::
...

ちなみに以下はパスワード設定時の/etc/shadowです。

# passwd
Changing password for root
New password:
Bad password: too weak
Retype password:
passwd: password for root changed by root
# cat /etc/shadow
root:$1$uhDSjlqJ$b.8w0xXJNgqCWP9Qpe4oc/:18302:0:99999:7:::
...

/etc/kubernetesの調査

minikubeはマスターとノードを同一環境で提供しているので以下のディレクトリ直下にてKubernetes関連のファイルが一同に揃っています。

# ls -l /etc/kubernetes/
total 28
drwxr-xr-x 2 root root  .. addons
-rw------- 1 root root .. admin.conf
-rw------- 1 root root .. controller-manager.conf
-rw------- 1 root root .. kubelet.conf
drwxr-xr-x 2 root root  .. manifests

addons

当ディレクトリ配下は以下で

# ls
dashboard-clusterrole.yaml         dashboard-rolebinding.yaml
dashboard-clusterrolebinding.yaml  dashboard-sa.yaml
dashboard-configmap.yaml           dashboard-secret.yaml
dashboard-dp.yaml                  dashboard-svc.yaml
dashboard-ns.yaml                  storage-provisioner.yaml
dashboard-role.yaml                storageclass.yaml

例えばdashboardのサービスのマニフェスト等も確認できます。

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
    kubernetes.io/minikube-addons: dashboard
    addonmanager.kubernetes.io/mode: Reconcile
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  ports:
    - port: 80
      targetPort: 9090
  selector:
    k8s-app: kubernetes-dashboard
---
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: dashboard-metrics-scraper
    kubernetes.io/minikube-addons: dashboard
    addonmanager.kubernetes.io/mode: Reconcile
  name: dashboard-metrics-scraper
  namespace: kubernetes-dashboard
spec:
  ports:
    - port: 8000
      targetPort: 8000
  selector:
    k8s-app: dashboard-metrics-scraper

manifest

当ディレクトリ配下は以下です。

# ls manifests/
addon-manager.yaml.tmpl  kube-apiserver.yaml           kube-scheduler.yaml
etcd.yaml                kube-controller-manager.yaml

おまけ

マスターとワーカーを別でインストールする場合は以下のようなファイル群がそれぞれに配置されます。

Master
/etc/kubernetes/
├── admin.conf
├── controller-manager.conf
├── kubelet.conf
├── manifests
│   ├── etcd.yaml
│   ├── kube-apiserver.yaml
│   ├── kube-controller-manager.yaml
│   └── kube-scheduler.yaml
├── pki
│   ├── apiserver-etcd-client.crt
│   ├── apiserver-etcd-client.key
│   ├── apiserver-kubelet-client.crt
│   ├── apiserver-kubelet-client.key
│   ├── apiserver.crt
│   ├── apiserver.key
│   ├── ca.crt
│   ├── ca.key
│   ├── etcd
│   │   ├── ca.crt
│   │   ├── ca.key
│   │   ├── healthcheck-client.crt
│   │   ├── healthcheck-client.key
│   │   ├── peer.crt
│   │   ├── peer.key
│   │   ├── server.crt
│   │   └── server.key
│   ├── front-proxy-ca.crt
│   ├── front-proxy-ca.key
│   ├── front-proxy-client.crt
│   ├── front-proxy-client.key
│   ├── sa.key
│   └── sa.pub
└── scheduler.conf
Worker
/etc/kubernetes/
├── bootstrap-kubelet.conf
├── kubelet.conf
├── manifests
└── pki
    └── ca.crt

終わりに

Kubernetesのマスター及びNodeを分けて用意する場合は、/etc/kubernetes周りのファイルに手を加える必要があるので、まずはminikube上でどうなっているのかを確認したい場合はぜひrootにスイッチした上で設定ファイルを漁ってみてください。