手当たり次第に書くんだ

飽きっぽいのは本能

Kubernetes MetalLB Helmインストール Harbor

目次に戻る

概要

MetalLBをHelmでインストールします。また、Harborを使用します。

オペレーション

Helmチャートリポジトリの追加

k8sクラスタ上ではなくJumpboxから操作しています。Jumpboxにはkubectlとhelm3がインストールされており、対象Clusterのクレデンシャルが登録されています。

まずはインターネット上の公式リポジトリを登録します。

[root@centos ~]# helm repo add metallb https://metallb.github.io/metallb
[root@centos ~]# helm repo list

NAME                    URL
metallb                 https://metallb.github.io/metallb

[root@centos ~]# helm repo update

Helmチャートのダウンロード

下記を実行すると、metallb-0.12.1.tgzがダウンロードされます。これがHelmチャートとなるので。Harborにアップロードしておきます。

[root@centos ~]# helm search repo metallb

NAME            CHART VERSION   APP VERSION     DESCRIPTION
metallb/metallb 0.12.1          v0.12.1         A network load-balancer implementation for Kube...

[root@centos ~]# helm pull metallb/metallb

Harborのリポジトリを登録しておきます。

[root@centos ~]# helm repo add harbor-library https://harbor.si1230.com/chartrepo/library
[root@centos ~]# helm repo list

NAME            URL
harbor-library  https://harbor.si1230.com/chartrepo/library

[root@centos ~]# helm repo update

デフォルト値の確認

下記を実施するとローカルにvalues.yaml.defaultが保存されます。このファイルには設定可能な値のデフォルト値が記載されています。

[root@centos ~]# helm show values metallb/metallb > values.yaml.default

values.yaml.defaultの内容を確認すると、controllerとspeakerとfrrの3つのイメージが必要なことが分かります。

controller:
  enabled: true
  # -- Controller log level. Must be one of: `all`, `debug`, `info`, `warn`, `error` or `none`
  logLevel: info
  image:
    repository: quay.io/metallb/controller
    tag:

speaker:
  enabled: true
  # -- Speaker log level. Must be one of: `all`, `debug`, `info`, `warn`, `error` or `none`
  logLevel: info
  tolerateMaster: true
  memberlist:
    enabled: true
    mlBindPort: 7946
  image:
    repository: quay.io/metallb/speaker
    tag:

  frr:
    enabled: false
    # FRR_LOGGING_LEVEL used to set logging level for all running frr processes.
    # Possible settings are :-
    #  informational, warning, errors and debugging.
    logLevel: informational
    image:
      repository: quay.io/frrouting/frr
      tag: stable_7.5
      pullPolicy:

この2つのイメージをPull/Pushします。

[root@centos ~]# podman pull quay.io/metallb/controller
[root@centos ~]# podman pull quay.io/metallb/speaker
[root@centos ~]# podman pull quay.io/frrouting/frr
[root@centos ~]# podman images metallb
REPOSITORY                  TAG         IMAGE ID      CREATED      SIZE
quay.io/metallb/speaker     latest      fa5c65d90309  4 years ago  39.2 MB
quay.io/metallb/controller  latest      54263933da63  4 years ago  38.9 MB

[root@centos ~]# podman images frrouting
REPOSITORY             TAG         IMAGE ID      CREATED       SIZE
quay.io/frrouting/frr  latest      4982aa93d368  25 hours ago  160 MB

[root@centos ~]# podman tag fa5c65d90309 harbor.si1230.com/library/metallb/speaker:latest
[root@centos ~]# podman tag 54263933da63 harbor.si1230.com/library/metallb/controller:latest
[root@centos ~]# podman tag 4982aa93d368 harbor.si1230.com/library/frrouting/frr:latest
[root@centos ~]# podman images metallb
REPOSITORY                                    TAG         IMAGE ID      CREATED      SIZE
quay.io/metallb/speaker                       latest      fa5c65d90309  4 years ago  39.2 MB
harbor.si1230.com/library/metallb/speaker     latest      fa5c65d90309  4 years ago  39.2 MB
quay.io/metallb/controller                    latest      54263933da63  4 years ago  38.9 MB
harbor.si1230.com/library/metallb/controller  latest      54263933da63  4 years ago  38.9 MB

[root@centos ~]# podman images frrouting
REPOSITORY                               TAG         IMAGE ID      CREATED       SIZE
quay.io/frrouting/frr                    latest      4982aa93d368  25 hours ago  160 MB
harbor.si1230.com/library/frrouting/frr  latest      4982aa93d368  25 hours ago  160 MB

[root@centos ~]# podman push harbor.si1230.com/library/metallb/speaker:latest
[root@centos ~]# podman push harbor.si1230.com/library/metallb/controller:latest
[root@centos ~]# podman push harbor.si1230.com/library/frrouting/frr:latest

values.yamlを作成します。

[root@centos ~]# cp values.yaml.default values.yaml
[root@centos ~]# vim values.yaml

controller:
  enabled: true
  # -- Controller log level. Must be one of: `all`, `debug`, `info`, `warn`, `error` or `none`
  logLevel: info
  image:
    repository: harbor.si1230.com/library/metallb/controller
    tag:

speaker:
  enabled: true
  # -- Speaker log level. Must be one of: `all`, `debug`, `info`, `warn`, `error` or `none`
  logLevel: info
  tolerateMaster: true
  memberlist:
    enabled: true
    mlBindPort: 7946
  image:
    repository: harbor.si1230.com/library/metallb/speaker
    tag:

  frr:
    enabled: false
    # FRR_LOGGING_LEVEL used to set logging level for all running frr processes.
    # Possible settings are :-
    #  informational, warning, errors and debugging.
    logLevel: informational
    image:
      repository:harbor.si1230.com/library/frrouting/frr
      tag: stable_7.5
      pullPolicy:

configInline:
  address-pools:
   - name: default
     protocol: layer2
     addresses:
     - 192.168.68.100-192.168.68.109

デフォルトのリポジトリを削除します。

[root@centos ~]# helm repo remove metallb
[root@centos ~]# helm repo list

インストールします。

[root@centos ~]# helm install metallb harbor-library/metallb -f values.yaml

Helmのインストール

公式サイトを参考にHelmをインストールします。Kubernetes clusterのオペレーションは基本的にMaster nodeで実施する為、最低限Master nodeにHelmがあれば十分です。

root@k8s-01:~# curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
root@k8s-01:~# chmod 700 get_helm.sh
root@k8s-01:~# ./get_helm.sh

Helmの操作

Helmの利用には、まず、必要なリポジトリを追加し、その中から必要なパッケージを指定してインストールします。

公開されているChartの確認

root@k8s-01:~# helm search hub
root@k8s-01:~# helm search hub [search_string]

リポジトリの追加と確認

root@k8s-01:~# helm repo add [repository_name] [repository_url]
root@k8s-01:~# helm repo list

リポジトリの更新

root@k8s-01:~# helm repo update

Chartのダウンロード

Chartは.tgzで公開されています。pullと同時に展開した状態でpullするには、–untarを付けます。

root@k8s-01:~# helm pull [chart_name]
root@k8s-01:~# helm pull [chart_name] --untar

Chartのインストール

helm install時に、デフォルト値から環境に合わせて変更が必要となる場合、-fオプションで編集した設定ファイルを指定するか、追加の引数で設定値を指定します。

root@k8s-01:~# helm install [name] -n [namespace] [chart_name]
root@k8s-01:~# helm install [name] -n [namespace] -f [config_file] [chart_name]

目次に戻る

Kubernetes MetalLB Helmインストール Harbor

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る