| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

MicroK8s

提供: MyMemoWiki
2020年11月11日 (水) 13:58時点におけるPiroto (トーク | 投稿記録)による版 (→‎クラスタリング)
ナビゲーションに移動 検索に移動

| Kubernetes | Docker |

MicroK8s

インストール

Macにインストール

$ brew install ubuntu/microk8s/microk8s
$ microk8s install

Macネットワークトラブルシュート

Ubuntuにインストール

$ sudo snap install microk8s --classic

ステータスの確認

$ microk8s status --wait-ready
microk8s is running
high-availability: no
  datastore master nodes: 127.0.0.1:19001
  datastore standby nodes: none
addons:
  enabled:
    ha-cluster           # Configure high availability on the current node
  disabled:
    ambassador           # Ambassador API Gateway and Ingress
    cilium               # SDN, fast with full network policy
    dashboard            # The Kubernetes dashboard
    dns                  # CoreDNS
    fluentd              # Elasticsearch-Fluentd-Kibana logging and monitoring
    gpu                  # Automatic enablement of Nvidia CUDA
    helm                 # Helm 2 - the package manager for Kubernetes
    helm3                # Helm 3 - Kubernetes package manager
    host-access          # Allow Pods connecting to Host services smoothly
    ingress              # Ingress controller for external access
    istio                # Core Istio service mesh services
    jaeger               # Kubernetes Jaeger operator with its simple config
    knative              # The Knative framework on Kubernetes.
    kubeflow             # Kubeflow for easy ML deployments
    linkerd              # Linkerd is a service mesh for Kubernetes and other frameworks
    metallb              # Loadbalancer for your Kubernetes cluster
    metrics-server       # K8s Metrics Server for API access to service metrics
    multus               # Multus CNI enables attaching multiple network interfaces to pods
    prometheus           # Prometheus operator for monitoring and logging
    rbac                 # Role-Based Access Control for authorisation
    registry             # Private image registry exposed on localhost:32000
    storage              # Storage class; allocates storage from host directory


サービスの有効化/無効化

  • 組み込みで有効化可能なアドオンサービスの確認
  • サービスを無効化する場合は、disable
$ microk8s enable --help
  • サービスを有効化する
$ microk8s enable dashboard dns registry istio

ダッシュボード

$ microk8s dashboard-proxy

Kubectl

  • MicroK8s は専用のバージョンのkubrctlをバンドルしている。
  • コマンドを監視と制御のために実行することができる。
$ microk8s kubectl get all --all-namespaces
NAMESPACE            NAME                                             READY   STATUS              RESTARTS   AGE
kube-system          pod/calico-node-m9j8n                            1/1     Running             0          90m
kube-system          pod/metrics-server-8bbfb4bdb-679mc               1/1     Running             0          7m38s
            :
  • MicroK8s は、すでにインストール済みのkubectlとの衝突を防ぐためにネームスペースを指定したkubectlコマンドを使用する
  • もしインストール済みの物がないのであれば、簡単にエイリアスを指定できる
  • ~/.bash_aliases に以下を記載
alias kubectl='microk8s kubectl'
  • ~/.bash_profile に以下を追記
if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

https://hondou.homedns.org/pukiwiki/index.php?k8s%20microK8s

$ token=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)
$ microk8s kubectl -n kube-system describe secret $token
$ microk8s kubectl port-forward -n kube-system service/kubernetes-dashboard 10443:443

https://127.0.0.1:10443

コマンド

https://microk8s.io/docs/commands

コマンド 内容
microk8s add-node クラスタへの接続文字列を生成
microk8s config
microk8s ctr
microk8s dbctl
microk8s disable
microk8s enable
microk8s inspect
microk8s join
microk8s kubectl
microk8s leave
microk8s refresh-certs
microk8s remove-node
microk8s reset ノードを初期状態にリセット
microk8s start 停止されたノードを開始
microk8s status ステータス情報を表示
microk8s stop カレントノードの停止

はじめに

  • Kubernetes は、appやserviceをデプロイするためにあるので、kubecltでそれらをKubernetesに対して行うことができる
  • デモアプリをインストールしてみる
$ kubectl create deployment nginx --image=nginx
  • 確認
$ kubectl get pods

アドオンの使用

  • MicroK8s は最低限のコンポーネントを使用するが、豊富な機能が "add-ons" とタイプすることで利用できる
  • サービス間の連携を容易にするDNS管理、 アプリケーションがストレージが必要な場合、'storage' アドオンはホストに直接領域を提供する。これらは簡単にセットアップできる
$ microk8s enable dns storage

アドオンの一覧

開始と終了

  • MicroK8sは、停止するまで実行し続ける。停止と開始は、以下のコマンド。
$ microk8s stop
$microk8s start

クラスタリング

  • 2つ以上のすでに稼働しているMicoroK8sインスタンスにクラスタを作成するには、add-nodeコマンドを使用
  • このコマンドが実行されたMicroK8sインスタンスが、クラスタのマスターとなり、Kubernetesコントロールプレーンをホストする
$ multipass list
Name                    State             IPv4             Image
microk8s-vm             Running           192.168.64.2     Ubuntu 18.04 LTS
delhi:~ hirotoyagi$ multipass shell

$ multipass exec microk8s-vm  -- sudo iptables -P FORWARD ACCEPT

$ microk8s add-node
From the node you wish to join to this cluster, run the following:
microk8s join 192.168.0.47:25000/8d0a8aefaa574545524af88c13a36647

If the node you are adding is not reachable through the default interface you can use one of the following:
 microk8s join 192.168.0.46:25000/8d0a8aefaa574545524af88c13a36647
 microk8s join 192.168.0.47:25000/8d0a8aefaa574545524af88c13a36647
 microk8s join 192.168.122.1:25000/8d0a8aefaa574545524af88c13a36647
 microk8s join 172.17.0.1:25000/8d0a8aefaa574545524af88c13a36647
 microk8s join 10.1.220.128:25000/8d0a8aefaa574545524af88c13a36647
  • add-node コマンドは、 microk8s joinコマンドでジョインしたいクラスタをMicroK8sで 実行すべきコマンドを出力する
  • add-nodeを実行したマスター側で出力されたコマンドを、参加させたいワーカーノード側で実行する


$ multipass info --all
Name:           microk8s-vm
State:          Running
IPv4:           192.168.64.2
Release:        Ubuntu 18.04.5 LTS
Image hash:     9fdd8fa3091b (Ubuntu 18.04 LTS)
Load:           0.92 1.13 0.77
Disk usage:     6.0G out of 48.3G
Memory usage:   674.4M out of 3.9G

$ multipass ls
Name                    State             IPv4             Image
microk8s-vm             Running           192.168.64.2     Ubuntu 18.04 LTS

Mac問題

The macOS bridge used for hyperkit filters packets so that only the IP address originally assigned to the VM is allowed through. If you add an additional address (e.g. IP alias) to the VM, the ARP broadcast will get through but the ARP response will be filtered out.