はじめに
v1.23.0で検証済み。コマンドはクラウド側に既存の Kubernetes クラスタ、エッジ側に root 権限を持つ別マシンがあることを想定。
前提
- クラウドホストから到達できる稼働中の Kubernetes クラスタと、有効な kubeconfig。
- クラウドホストの 10000 番ポートに到達できる別のエッジマシン。
- クラウドホストとエッジノードの両方に
keadmCLI。
インストール
keadm はリリースページから入手するか、ソースからビルドする。
git clone https://github.com/kubeedge/kubeedge.git
cd kubeedge
make all WHAT=keadmインストーラ CLI は init・gettoken・join を提供する (keadm/cmd/keadm/app/cmd/cloud/init.go:51, keadm/cmd/keadm/app/cmd/edge/join.go:61)。
最初の動く構成
クラウドホストでクラスタに対し
cloudcoreをブートストラップする。keadm initが Helm 経由でインストールする。bashkeadm init --advertise-address="<cloud-host-ip>"cloudcoreが生成した join トークンを読む。bashkeadm gettokenエッジノードで、クラウドホストの CloudHub ポート (10000) を指定し、手順 2 のトークンを渡してクラスタに参加する。
bashkeadm join \ --cloudcore-ipport="<cloud-host-ip>:10000" \ --token="<token-from-gettoken>"
これによりノード上で edgecore がインストール・起動される (keadm/cmd/keadm/app/cmd/edge/join.go:61)。
動作確認
クラウドホストから、エッジノードが Kubernetes ノードとして現れるはずだ。
kubectl get nodesエッジノードでは、エージェントが動いていることを確認し、クラウドへの keepalive ping をログで見る。
systemctl status edgecore
journalctl -u edgecore健全なエッジノードは kubectl get nodes で Ready を報告し、edgehub がクラウドリンク越しに定期 keepalive を送るためその状態を保つ (edge/pkg/edgehub/process.go:106-128)。
次に読むもの
公式の keadm install guide が TLS 証明書、QUIC と WebSocket、cloudcore の HA、デバイス管理のセットアップを扱う。本番強化は上の最小フローではなくそちらを使う。