MicroK8s
ナビゲーションに移動
検索に移動
| Kubernetes | Docker |
目次
MicroK8s
インストール
Macにインストール
- https://jp.ubuntu.com/blog/kubernetes-on-mac-how-to-set-up-jp
- https://microk8s.io/docs/install-alternatives#heading--macos
$ 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://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問題
- https://discourse.ubuntu.com/t/troubleshooting-networking-on-macos/12901#arp-problems
- macOS ブリッジは、hyperkit フィルターパッケージを使用しているので、IPアドレスは、元々VMに割り当てられたもののみ許可される。
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.
© 2006 矢木浩人