CL LAB

HOME > CL LAB > k0sでKube-Routerの代わりにCalicoやWeave Netを使ってみよう #k0s #mirantis #kubernetes #k8s #calico #weavenet

k0sでKube-Routerの代わりにCalicoやWeave Netを使ってみよう #k0s #mirantis #kubernetes #k8s #calico #weavenet

 ★ 26

k0sとは、軽量かつ使いやすい、100%オープンソースのKubernetesディストリビューションです。主な特徴としては、

  • フル機能のKubernetesを構築するために必要なすべてを単一バイナリに同梱
  • k0s特有の改変を加えていない、CNCF認定の純正なKubernetesをデプロイ
  • 最低必要リソース1vCPU・1GBメモリ・2GBストレージのシングルノードから、HA構成の大規模クラスタまでサポート
  • Konnectivityをデフォルトで有効化

などが挙げられます。より詳しい情報は公式ドキュメントをご覧ください。

本稿ではこのk0sを使ってKubernetesをインストールしてみるのですが、この際にネットワークプラグインをデフォルトのKube-Routerではなく、CalicoWeave Netを使うようにしてみます。

なお、デフォルトのKube-Routerでインストールする例は以前のブログ「k0sでKubernetesをVirtualbox/Vagrantにインストールしてみよう」をご覧ください。

前提条件

ホストマシンにVagrantとVirtualboxがインストール済みであるとします。IPアドレスは必要に応じて適宜読み替えてください。

Vagrantfile

Vagrantfileで3台のゲストを起動します。IPアドレスやメモリは必要に応じて変更してください。

  • master : 192.168.123.101 : Kubernetesマスターノード
  • node01 : 192.168.123.201 : Kubernetesワーカーノード1
  • node02 : 192.168.123.202 : Kubernetesワーカーノード2

nodes = {
  'master' => '192.168.123.101',
  'node01' => '192.168.123.201',
  'node02' => '192.168.123.202',
}
Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"
  config.vm.box_check_update = false
  nodes.each do |node_name, ipaddr|
    config.vm.define node_name do |cf|
      cf.vm.hostname = node_name
      cf.vm.network "private_network", ip: ipaddr
      cf.vm.provider "virtualbox" do |vb|
        vb.memory = 4096
      end
    end
  end
end

k0sのインストールとコントロールプレーンの起動: Calico編

masterゲストにて、 https://github.com/k0sproject/k0s/releases から執筆時の最新バージョンである v1.22.2+k0s.1 をダウンロードします。

$ curl -sSLf https://github.com/k0sproject/k0s/releases/download/v1.22.2%2Bk0s.1/k0s-v1.22.2+k0s.1-amd64 > k0s
$ sudo mv k0s /usr/local/bin/k0s
$ sudo chmod +x /usr/local/bin/k0s
$ k0s version
v1.22.2+k0s.1

デフォルトでのインストール設定を default-config オプションで出力し、IPアドレスを変更し、ネットワークプラグインにCalicoを使うように設定します。

$ k0s default-config > k0s.yaml.orig
$ cp -a k0s.yaml.orig k0s.yaml
$ vi k0s.yaml

差分は次の通りになります。

$ diff -u k0s.yaml.orig k0s.yaml
--- k0s.yaml.orig   2021-10-25 06:19:14.292920391 +0000
+++ k0s.yaml    2021-10-25 06:24:38.659022388 +0000
@@ -4,26 +4,22 @@
   name: k0s
 spec:
   api:
-    address: 10.0.2.15
+    address: 192.168.123.101
     port: 6443
     k0sApiPort: 9443
     sans:
-    - 10.0.2.15
     - 192.168.123.101
   storage:
     type: etcd
     etcd:
-      peerAddress: 10.0.2.15
+      peerAddress: 192.168.123.101
   network:
     podCIDR: 10.244.0.0/16
     serviceCIDR: 10.96.0.0/12
-    provider: kuberouter
-    calico: null
-    kuberouter:
-      mtu: 0
-      peerRouterIPs: ""
-      peerRouterASNs: ""
-      autoMTU: true
+    provider: calico
+    calico:
+      ipAutodetectionMethod: cidr=192.168.123.0/24
+    kuberouter: null
     kubeProxy:
       disabled: false
       mode: iptables

spec.apiとspec.storageの変更は以前のブログ「k0sでKubernetesをVirtualbox/Vagrantにインストールしてみよう」と同様です。spec.providerはcalicoに変更し、spec.network.kuberouterはすべて削除しnullとします。そしてVirtualboxの「10.0.2.15」を掴んでしまわないように、spec.network.calico.ipAutodetecionMethodでcidr=192.168.123.0/24を指定します。詳細はCalicoの公式ドキュメント「IP autodetection methods」を参照してください。

ではk0sの初期設定と起動を行いましょう。

$ sudo mkdir /etc/k0s
$ sudo mv k0s.yaml /etc/k0s/
$ sudo k0s install controller -c /etc/k0s/k0s.yaml
$ sudo k0s start

起動の確認を行います。

$ sudo k0s status
Version: v1.22.2+k0s.1
Process ID: 14407
Role: controller
Workloads: false

k0sでワーカーノードを追加: Calico編

では、ワークロードをスケジューリングするためのワーカーノードを追加しましょう。

まず、masterゲストで参加トークンを払い出してもらいます。なお、この参加トークンはbase64エンコーディング+gzipされたkubeconfigファイルです。

$ sudo k0s token create --role=worker -c /etc/k0s/k0s.yaml > join-token
$ base64 -d join-token | zcat | head
apiVersion: v1
clusters:
- cluster:
    server: https://192.168.123.101:6443
    certificate-authority-data: LS0tLS1C(省略)

node01ゲストでもmasterゲスト同様、k0sバイナリをダウンロードして実行可能にしておきます。

$ curl -sSLf https://github.com/k0sproject/k0s/releases/download/v1.22.2%2Bk0s.1/k0s-v1.22.2+k0s.1-amd64 > k0s
$ sudo mv k0s /usr/local/bin/k0s
$ sudo chmod +x /usr/local/bin/k0s
$ k0s version
v1.22.2+k0s.1

参加トークンをmasterゲストからnode01ゲストにコピーし、インストールと起動を行います。プライマリネットワークインターフェイスの問題があるため、 --node-ip オプションでnode01ゲストのIPアドレスを指定するようにします。

$ sudo mkdir /etc/k0s
$ sudo mv join-token /etc/k0s/
$ sudo k0s install worker --token-file /etc/k0s/join-token --kubelet-extra-args '--node-ip=192.168.123.201'
$ sudo k0s start

起動の確認を行います。

$ sudo k0s status
Version: v1.22.2+k0s.1
Process ID: 2634
Role: worker
Workloads: true

node02ゲストでも同様に、クラスタへ参加させます。この際、 --node-ip= オプションを忘れずにnode02のIPアドレスに変更しましょう。

masterゲストにて、2つのワーカーノードの参加を確認します。

$ sudo cp /var/lib/k0s/pki/admin.conf kubeconfig.cfg
$ sudo chown $USER kubeconfig.cfg
$ export KUBECONFIG=~/kubeconfig.cfg
$ k0s kubectl get nodes
NAME     STATUS   ROLES    AGE   VERSION
node01   Ready    <none>   20m   v1.22.2+k0s
node02   Ready    <none>   20m   v1.22.2+k0s

Calicoの公式ドキュメント「Install calicoctl」を参考にmasterゲストにてcalicoctlをインストールします。この際、k0s v1.22.2+k0s.1でインストールされるCalicoのバージョン3.18.1に合わせます。

$ curl -o calicoctl -O -L "https://github.com/projectcalico/calicoctl/releases/download/v3.18.1/calicoctl"
$ chmod +x calicoctl
$ sudo mv calicoctl /usr/local/bin

calicoctlを実行し、ネットワークの状態を確認します。

$ calicoctl get ippool
NAME                  CIDR            SELECTOR
default-ipv4-ippool   10.244.0.0/16   all()
$ calicoctl get nodes -o wide
NAME     ASN       IPV4                 IPV6
node01   (64512)   192.168.123.201/24
node02   (64512)   192.168.123.202/24

これでクラスタが完成しました。

動作テスト: Calico編

デモアプリケーションとしてお馴染みの Sock Shop をデプロイします。

$ k0s kubectl create -f https://raw.githubusercontent.com/microservices-demo/microservices-demo/master/deploy/kubernetes/complete-demo.yaml
$ k0s kubectl get pod -n sock-shop
NAME                            READY   STATUS    RESTARTS   AGE
carts-b4d4ffb5c-fv9hx           1/1     Running   0          9m22s
carts-db-6c6c68b747-shj4b       1/1     Running   0          9m22s
catalogue-759cc6b86-z7dt7       1/1     Running   0          9m22s
catalogue-db-96f6f6b4c-gmsk6    1/1     Running   0          9m21s
front-end-5c89db9f57-4x4pn      1/1     Running   0          9m21s
orders-7664c64d75-6z68r         1/1     Running   0          9m21s
orders-db-659949975f-p8s4x      1/1     Running   0          9m21s
payment-7bcdbf45c9-wtw8z        1/1     Running   0          9m21s
queue-master-5f6d6d4796-vg9hq   1/1     Running   0          9m21s
rabbitmq-5bcbb547d7-mxvv4       2/2     Running   0          9m21s
session-db-7cf97f8d4f-d7rgk     1/1     Running   0          9m20s
shipping-7f7999ffb7-4r2h9       1/1     Running   0          9m20s
user-68df64db9c-r88p5           1/1     Running   0          9m20s
user-db-6df7444fc-sq26h         1/1     Running   0          9m20s

ブラウザで http://192.168.123.201:30001 あるいは http://192.168.123.202:30001 にアクセスし、Sock ShopのUIが表示されれば正常に動作しています。

k0sのインストールとコントロールプレーンの起動: Weave Net編

改めてVMを用意し、master/node01/node02ゲストにてk0sをインストールしておきます。

デフォルトでのインストール設定を default-config オプションで出力し、IPアドレスを変更し、ネットワークプラグインをインストールしないよう設定します。

$ k0s default-config > k0s.yaml.orig
$ cp -a k0s.yaml.orig k0s.yaml
$ vi k0s.yaml

差分は次の通りになります。

$ diff -u k0s.yaml.orig k0s.yaml
--- k0s.yaml.orig   2021-10-25 08:02:58.422869999 +0000
+++ k0s.yaml    2021-10-25 08:03:40.683989995 +0000
@@ -4,26 +4,21 @@
   name: k0s
 spec:
   api:
-    address: 10.0.2.15
+    address: 192.168.123.101
     port: 6443
     k0sApiPort: 9443
     sans:
-    - 10.0.2.15
     - 192.168.123.101
   storage:
     type: etcd
     etcd:
-      peerAddress: 10.0.2.15
+      peerAddress: 192.168.123.101
   network:
     podCIDR: 10.244.0.0/16
     serviceCIDR: 10.96.0.0/12
-    provider: kuberouter
+    provider: custom
     calico: null
-    kuberouter:
-      mtu: 0
-      peerRouterIPs: ""
-      peerRouterASNs: ""
-      autoMTU: true
+    kuberouter: null
     kubeProxy:
       disabled: false
       mode: iptables

spec.apiとspec.storageの変更は以前のブログ「k0sでKubernetesをVirtualbox/Vagrantにインストールしてみよう」と同様です。spec.providerはcustomに変更し、spec.network.kuberouterはすべて削除しnullとします。これにより、デフォルトのKube-Routerも代替のCalicoも、k0sによってインストールされません。

ではk0sの初期設定と起動を行いましょう。

$ sudo mkdir /etc/k0s
$ sudo mv k0s.yaml /etc/k0s/
$ sudo k0s install controller -c /etc/k0s/k0s.yaml
$ sudo k0s start

起動の確認を行います。

$ sudo k0s status
Version: v1.22.2+k0s.1
Process ID: 14407
Role: controller
Workloads: false

では、Weave Netのインストールを行います。

k0s公式ドキュメントのCustom CNI configurationに説明がある通り、k0sにはManifest Deployerという機能が備わっており、特定のディレクトリを定期的に監視し、配置されたKubernetesマニフェスト(YAMLファイル)を自動的にデプロイしたり、マニフェストが削除されればリソースも自動的に削除するようになっています。Weave Netのインストールにはこれを利用します。

Manifest Deployerが利用する特定のディレクトリとは /var/lib/k0s/manifests ディレクトリです。この下にサブディレクトリとして /var/lib/k0s/manifests/weavenet を作成し、Weave Netのインストールマニフェストを配置します。

$ sudo mkdir /var/lib/k0s/manifests/weavenet
$ curl -sSLf "https://cloud.weave.works/k8s/net?k8s-version=$(k0s kubectl version | base64 | tr -d '\n')" > weavenet.yaml
$ sudo mv weavenet.yaml /var/lib/k0s/manifests/weavenet

少し待つとWeave NetのDaemonSetが起動するはずですが…何も起きません。k0scontrollerサービスのログを確認してみます。

Oct 25 08:22:34 master k0s[2703]: time="2021-10-25 08:22:34" level=warning msg="stack apply failed" bundle=weavenet component=applier error="unknown api error: name is required"
Oct 25 08:22:34 master k0s[2703]: time="2021-10-25 08:22:34" level=warning msg="failed to apply manifests: unknown api error: name is required" component=applier-weavenet

Manifest DeployerがWeave Netインストールマニフェストを読み込んではいるようですが、エラーになっているようです。Weave Netインストールマニフェストを見てみると次のようになっています。

apiVersion: v1
kind: List
items:
  - apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: weave-net
      annotations:
        cloud.weave.works/launcher-info: |-
          {

この「kind: List」形式にはmetadata.nameがないからのようです。さらにManifest DeployerのNoteを見ると「Explicitly define the namespace in the manifests (訳:マニフェストには明示的にnamespaceを定義する)」とあります。そのため仮の名前とnamespaceを与えてみます。

apiVersion: v1
kind: List
metadata:
  name: weave-net
  namespace: weave-net
items:
  - apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: weave-net

しかしk0scontrollerのログを見ると次のようなエラーになってしまいました。

Oct 26 01:05:20 master k0s[2606]: time="2021-10-26 01:05:20" level=warning msg="stack apply failed" bundle=weavenet component=applier error="cannot create resource weavenet: the server could not find the requested resource"
Oct 26 01:05:20 master k0s[2606]: time="2021-10-26 01:05:20" level=warning msg="stack apply failed" bundle=weavenet component=applier error="cannot create resource weavenet: the server could not find the requested resource"
Oct 26 01:05:20 master k0s[2606]: time="2021-10-26 01:05:20" level=warning msg="stack apply failed" bundle=weavenet component=applier error="cannot create resource weavenet: the server could not find the requested resource"
Oct 26 01:05:20 master k0s[2606]: time="2021-10-26 01:05:20" level=warning msg="stack apply failed" bundle=weavenet component=applier error="cannot create resource weavenet: the server could not find the requested resource"
Oct 26 01:05:20 master k0s[2606]: time="2021-10-26 01:05:20" level=warning msg="stack apply failed" bundle=weavenet component=applier error="cannot create resource weavenet: the server could not find the requested resource"

ここでは取り上げませんが、Weave Netインストールマニフェストを「kind: List」形式ではなく、「---」区切りのYAMLブロック形式にしたところ正常に読み込まれるようになりました。Manifest Deployerのバグか仕様かわからなかったので、バグレポートを送っています(Manifest Deployer does not accept kind: List style manifest)。続報をお待ちください。

さて、Manifest Deployerを使わず、Weave Net公式ドキュメント「Integrating Kubernetes via the Addon」の通りに kubectl apply を使うことでもWeave Netはインストールできます。この際、kubectl ではなく k0s kubectl を使うことをお忘れなく。2か所あります。

$ k0s kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(k0s kubectl version | base64 | tr -d '\n')"
serviceaccount/weave-net created
clusterrole.rbac.authorization.k8s.io/weave-net created
clusterrolebinding.rbac.authorization.k8s.io/weave-net created
role.rbac.authorization.k8s.io/weave-net created
rolebinding.rbac.authorization.k8s.io/weave-net created
daemonset.apps/weave-net created

これでWeave Netがインストールできました。

k0sでワーカーノードを追加: WeaveNet編

では、ワークロードをスケジューリングするためのワーカーノードを追加しましょう。Calicoの場合と同様なので、masterゲストでの参加トークンの払い出しと、node01/node02ゲストでのクラスタ参加手順は省略します。

$ sudo cp /var/lib/k0s/pki/admin.conf kubeconfig.cfg
$ sudo chown $USER kubeconfig.cfg
$ export KUBECONFIG=~/kubeconfig.cfg
$ k0s kubectl get nodes
NAME     STATUS   ROLES    AGE   VERSION
node01   Ready    <none>   20m   v1.22.2+k0s
node02   Ready    <none>   20m   v1.22.2+k0s

node01/node02はReadyとなったのですが、何か様子が変です。

$ k0s kubectl get pods -A
NAMESPACE     NAME                              READY   STATUS              RESTARTS        AGE
kube-system   coredns-5ccbdcc4c4-9txs9          0/1     ContainerCreating   0               28m
kube-system   coredns-5ccbdcc4c4-lmpnv          0/1     ContainerCreating   0               22m
kube-system   konnectivity-agent-66hxj          0/1     ContainerCreating   0               9m3s
kube-system   konnectivity-agent-v878z          0/1     ContainerCreating   0               9m4s
kube-system   kube-proxy-6mqgd                  1/1     Running             0               22m
kube-system   kube-proxy-grvbr                  1/1     Running             0               22m
kube-system   metrics-server-6bd95db5f4-kbcpz   0/1     ContainerCreating   0               28m
kube-system   weave-net-t8xqj                   2/2     Running             1 (9m11s ago)   9m37s
kube-system   weave-net-x8z67                   2/2     Running             1 (9m9s ago)    9m37s

いつまで経ってもcoredns、konnectivity-agent、metrics-server PodがRunningになりません。Eventを見てみると、

Warning  FailedCreatePodSandBox  4m14s (x17 over 7m48s)  kubelet            (combined from similar events): Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "710f088ae6e9de5c4021fcda9efe2f8659f74fe33f2b35f78f3998f888d59e7a": failed to find plugin "loopback" in path [/opt/cni/bin]

何かファイルが足りないようです。k0sの公式ドキュメント「Configuration Options」を見ると、spec.network.providerの項目に「Be aware that it is your responsibility to configure all of the CNI-related setups, including the CNI provider itself and all necessary host levels setups (for example, CNI binaries). (訳: CNIプロバイダ自体とすべてのホストレベルのセットアップ(例:CNIバイナリ)を含む、CNI関連のすべてのセットアップを構成するのは、ユーザの責任であることに注意してください)」とあります。つまり、Kube-RouterやCalicoを利用する場合と異なり、ワーカーノードに作業が必要ということです。

ここではloopback CNIプラグインが見つからないというエラーが出いることからhttps://github.com/containernetworking/pluginsのインストールが必要であることがわかります。なおプラグインのバージョンはhttps://github.com/k0sproject/cni-node/blob/v0.1.0/Dockerfileからv0.9.1とわかります。

node01とnode02にてCNIプラグインをインストールしましょう。まず /opt/cni/bin ディレクトリを確認してみます。

$ ls -l /opt/cni/bin/
total 11172
lrwxrwxrwx 1 root root       18 Oct 25 08:30 weave-ipam -> weave-plugin-2.8.1
lrwxrwxrwx 1 root root       18 Oct 25 08:30 weave-net -> weave-plugin-2.8.1
-rwxr-xr-x 1 root root 11437320 Oct 25 08:30 weave-plugin-2.8.1

Weave Net関連のものか入っていません。ここに必要なファイルをダウンロード・インストールします。

$ wget https://github.com/containernetworking/plugins/releases/download/v0.9.1/cni-plugins-linux-amd64-v0.9.1.tgz
$ sudo tar xf cni-plugins-linux-amd64-v0.9.1.tgz -C /opt/cni/bin
$ ls -l /opt/cni/bin/
total 83448
-rwxr-xr-x 1 root root  4151672 Feb  5  2021 bandwidth
-rwxr-xr-x 1 root root  4536104 Feb  5  2021 bridge
-rwxr-xr-x 1 root root 10270090 Feb  5  2021 dhcp
-rwxr-xr-x 1 root root  4767801 Feb  5  2021 firewall
-rwxr-xr-x 1 root root  3357992 Feb  5  2021 flannel
-rwxr-xr-x 1 root root  4144106 Feb  5  2021 host-device
-rwxr-xr-x 1 root root  3565330 Feb  5  2021 host-local
-rwxr-xr-x 1 root root  4288339 Feb  5  2021 ipvlan
-rwxr-xr-x 1 root root  3530531 Feb  5  2021 loopback
-rwxr-xr-x 1 root root  4367216 Feb  5  2021 macvlan
-rwxr-xr-x 1 root root  3966455 Feb  5  2021 portmap
-rwxr-xr-x 1 root root  4467317 Feb  5  2021 ptp
-rwxr-xr-x 1 root root  3701138 Feb  5  2021 sbr
-rwxr-xr-x 1 root root  3153330 Feb  5  2021 static
-rwxr-xr-x 1 root root  3668289 Feb  5  2021 tuning
-rwxr-xr-x 1 root root  4287972 Feb  5  2021 vlan
-rwxr-xr-x 1 root root  3759977 Feb  5  2021 vrf
lrwxrwxrwx 1 root root       18 Oct 25 08:30 weave-ipam -> weave-plugin-2.8.1
lrwxrwxrwx 1 root root       18 Oct 25 08:30 weave-net -> weave-plugin-2.8.1
-rwxr-xr-x 1 root root 11437320 Oct 25 08:30 weave-plugin-2.8.1

少し待ってみると、先ほどは起動していなかったcoredns、konnectivity-agent、metrics-server PodがRunningになりました。

$ k0s kubectl get pods -A
NAMESPACE     NAME                              READY   STATUS    RESTARTS      AGE
kube-system   coredns-5ccbdcc4c4-9txs9          1/1     Running   0             39m
kube-system   coredns-5ccbdcc4c4-lmpnv          1/1     Running   0             32m
kube-system   konnectivity-agent-66hxj          1/1     Running   0             19m
kube-system   konnectivity-agent-v878z          1/1     Running   0             19m
kube-system   kube-proxy-6mqgd                  1/1     Running   0             33m
kube-system   kube-proxy-grvbr                  1/1     Running   0             32m
kube-system   metrics-server-6bd95db5f4-kbcpz   0/1     Running   0             39m
kube-system   weave-net-t8xqj                   2/2     Running   1 (19m ago)   20m
kube-system   weave-net-x8z67                   2/2     Running   1 (19m ago)   20m

動作テスト: Weave Net編

デモアプリケーションとしてお馴染みの Sock Shop をデプロイします。

$ k0s kubectl create -f https://raw.githubusercontent.com/microservices-demo/microservices-demo/master/deploy/kubernetes/complete-demo.yaml
$ k0s kubectl get pod -n sock-shop
NAME                            READY   STATUS    RESTARTS   AGE
carts-b4d4ffb5c-s4l92           1/1     Running   0          6m47s
carts-db-6c6c68b747-b9xbp       1/1     Running   0          6m47s
catalogue-759cc6b86-gs4kd       1/1     Running   0          6m47s
catalogue-db-96f6f6b4c-mnhzl    1/1     Running   0          6m47s
front-end-5c89db9f57-79mvj      1/1     Running   0          6m47s
orders-7664c64d75-plbdk         1/1     Running   0          6m47s
orders-db-659949975f-8gzsr      1/1     Running   0          6m47s
payment-7bcdbf45c9-kcxbq        1/1     Running   0          6m46s
queue-master-5f6d6d4796-8dj6s   1/1     Running   0          6m46s
rabbitmq-5bcbb547d7-vwxxq       2/2     Running   0          6m46s
session-db-7cf97f8d4f-hr2mh     1/1     Running   0          6m46s
shipping-7f7999ffb7-dr5kq       1/1     Running   0          6m46s
user-68df64db9c-446wm           1/1     Running   0          6m46s
user-db-6df7444fc-dfjsn         1/1     Running   0          6m46s

ブラウザで http://192.168.123.201:30001 あるいは http://192.168.123.202:30001 にアクセスし、Sock ShopのUIが表示されれば正常に動作しています。

まとめ

本稿では、k0sに内蔵されているネットワークプラグインであるCalicoを利用する方法と、k0sに内蔵されていないWeave Netを利用する場合につまづいた点とその解決方法について見てみました。
k0sではKube-RouterとCalicoが設定で簡単に利用が可能となるほか、Weave Netに関してもk0s特有の事情はあるものの、一旦インストールしてしまえばまったく問題なく利用可能です。
手軽にKubernetesクラスタを構築できますので、是非おためしください。

CL LAB Mail Magazine

CL LABの情報を逃さずチェックしよう!

メールアドレスを登録すると記事が投稿されるとメールで通知します。

メールアドレス: 登録

※登録後メールに記載しているリンクをクリックして認証してください。

Related post

Neo4j[ホワイトペーパー]CCPA