K8sオフライン展開の説明と実践的な操作

K8sオフライン展開の説明と実践的な操作

1. 概要

Kubernetes は、コンテナ化されたアプリケーションの展開、管理、および操作の自動化に使用できる、非常にスケーラブルなコンテナ オーケストレーション プラットフォームです。インターネット接続のない安全な環境や、ネットワーク接続が信頼できない場合など、場合によっては Kubernetes をオフラインでデプロイする必要があることがあります。 Kubernetes のオフライン展開の一般的な手順は次のとおりです。

  1. Kubernetes バイナリ ファイルを取得します。Kubernetes 公式 Web サイトから Kubernetes バイナリ ファイルをダウンロードし、ローカルで解凍します。
  2. オフライン イメージを準備する: オフライン環境では、必要なコンテナー イメージをローカルにダウンロードし、ローカル リポジトリに保存する必要があります。 Docker イメージのエクスポート/インポート コマンドまたは Docker レジストリ ミラー ツールを使用して、オンライン環境からイメージをエクスポートし、オフライン環境にインポートできます。
  3. Kubernetes ノードを構成する: Docker エンジン、kubelet、kubeadm などの必要な依存関係を各ノードにインストールします。Docker オフライン インストーラーを使用して、Docker エンジンをオフライン ノードにインストールできます。
  4. Kubernetes クラスターを初期化する: kubeadm init コマンドを使用してクラスターを初期化し、必要な構成ファイルと証明書をノードにコピーします。オフライン環境では、kubelet および kubeadm に必要な構成ファイルを各ノードに手動でコピーする必要があります。
  5. ノードに参加します。kubeadm join コマンドを使用して、新しいノードをクラスターに追加します。オフライン環境では、kubelet および kubeadm 構成ファイルを手動でコピーし、各ノードで kubeadm join コマンドを使用してノードをクラスターに参加させる必要があります。
  6. アプリケーションをデプロイする: kubectl コマンドを使用して、クラスターにアプリケーションをデプロイし、ローカル リポジトリから必要なコンテナ イメージをプルします。

オフライン環境で Kubernetes をデプロイするには、多少の追加作業が必要ですが、これは可能であり、Kubernetes をデプロイする重要な方法の 1 つです。

2. 事前準備

1) ノード情報

ノード情報

ホスト名

IP

役割

オペレーティング·システム

k8s バージョン

ローカル-168-182-110

192.168.182.110

マスター、keepalived (VIP: 192.168.182.211)、nfs-server

セントロス7

1.23.6

ローカル-168-182-111

192.168.182.111

マスター、キープアライブ、NFS クライアント

セントロス7

1.23.6

ローカル-168-182-112

192.168.182.112

マスター、NFS クライアント

セントロス7

1.23.6

ローカル-168-182-113

192.168.182.113

ノード、nfsクライアント

セントロス7

1.23.6

k8s バージョン: https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG

2) ホスト名を変更し、ホストを構成する

ホスト名を変更する

 # 192.168.182.110実行
hostnamectl設定-ホスト名 ローカル- 168 - 182 - 110

# 192.168.182.111実行
hostnamectl設定-ホスト名 ローカル- 168 - 182 - 110

# 192.168.182.112実行
hostnamectl設定-ホスト名 ローカル- 168 - 182 - 110

# 192.168.182.113実行
hostnamectl設定-ホスト名 ローカル- 168 - 182 - 110

ホストを構成する

 cat >> / etc / hosts << EOF
192.168 .182 .110ローカル- 168 - 182 - 110
192.168 .182 .111ローカル- 168 - 182 - 111
192.168 .182 .112ローカル- 168 - 182 - 112
192.168 .182 .113ローカル- 168 - 182 - 113
#VIP
クラスター-エンドポイント192.168 .182 .211
終了

3) SSH相互信頼を設定する

 # Enterキーを押し続ける
ssh -キージェネレータ

ssh -コピー- id - i ~/ .ssh / id_rsa .pub root@local - 168 - 182 - 110
ssh -コピー- id - i ~/ .ssh / id_rsa .pub root@local - 168 - 182 - 111
ssh -コピー- id - i ~/ .ssh / id_rsa .pub root@local - 168 - 182 - 112
ssh -コピー- id - i ~/ .ssh / id_rsa .pub root@local - 168 - 182 - 113

4) 時刻同期

 yum インストール chrony -y
systemctl 開始 chronyd
systemctl は chronyd を有効にします
クロニクソース

5) ファイアウォールをオフにする

 systemctl 停止 ファイアウォール
systemctl ファイアウォールを無効にする

6) スワップをオフにする

 # 一時的に閉鎖します。スワップを閉じるのは主にパフォーマンス上の考慮のためです
スワップオフ- a
# このコマンドを使用して、スワップが閉じられているかどうかを確認できます
無料
# 永久に閉店
sed - ri 's/.*swap.*/#&/' / etc / fstab

7) SELinuxを無効にする

 # 一時閉店
強制0を設定する
# 永久に無効にする
sed - i 's/^SELINUX=enforcing$/SELINUX=disabled/' / etc / selinux / config

8) iptablesがブリッジトラフィックを検査できるようにする

このモジュールを明示的にロードするには、sudo modprobe br_netfilter を実行し、lsmod | を実行して br_netfilter モジュールがロードされていることを確認します。 grep br_netfilter:

 sudo modprobe br_netfilter
lsmod | grep br_netfilter

Linux ノードの iptables がブリッジ トラフィックを正しく認識できるようにするには、sysctl 構成で net.bridge.bridge-nf-call-iptables が 1 に設定されていることを確認します。例えば:

<< EOF | sudo tee / etc / modules - .d / k8s .confをロードします
かぶせる
br_netfilter
終了

sudo modprobeオーバーレイ
sudo modprobe br_netfilter

# 必要な sysctl パラメータを設定します。再起動後も変更されません。
<< EOF | sudo tee /etc/sysctl.d/k8s.conf
ネット.bridge .bridge - nf -呼び出し- iptables = 1
ネット.bridge .bridge - nf -呼び出し- ip6tables = 1
ネット.ipv4 .ip_forward = 1
終了

# 再起動せずにsysctlパラメータを適用する
sudo sysctl --system

3. 展開を開始する

ダウンロードアドレス: https://download.docker.com/linux/static/stable/x86_64/

イメージ、インストール パッケージ、kube-flannel.yml、deploy.yaml などのリソースについては、私の公開アカウント [Big Data and Cloud Native Technology Sharing] をフォローし、[k8s] に返信して入手できます。

1) Dockerをオフラインでインストールする

1. ダウンロード

 # ダウンロード
wget https : //.docker.com/linux/static/stable/x86_64/docker-20.10.20.tgzダウンロード
# 解凍
tar - zxvf ドッカー- 20.10 .20 .tgz

2. 解凍したdockerフォルダをすべて/usr/binディレクトリに移動する

 cp -p docker /* /usr/bin

3. docker起動ファイルを設定する

/usr/lib/systemd/system/​ディレクトリにdocker.serviceファイルを作成します。

 cat > /usr/lib/systemd/system/docker.service << EOF
[ユニット]
Descriptinotallow = Docker アプリケーション コンテナ エンジン
ドキュメント= http://docs.docker.com
= network .target docker .socket
[サービス]
タイプ=通知
Envirnotallow =-/ run / flannel / docker
作業ディレクトリ=/ usr / local / bin
ExecStart =/ usr / bin / dockerd\
- HTTP : // 0.0.0.0 : 4243 \
-H unix : /// var / run / docker .sock \
--selinux-enabled=false \
--log-opt 最大サイズ=1g
ExecReload =/ bin / kill -s HUP $MAINPID
# Limit *がゼロない場合、アカウンティングオーバーヘッドによりパフォーマンスの問題が発生します
# カーネル。コンテナローカルアカウンティングを行うには、cgroups を使用することをお勧めします。
LimitNOFILE =無限大
LimitNPROC =無限大
LimitCORE =無限大
# systemd バージョンがサポートしている場合は、TasksMax のコメントを解除します。
# このバージョンをサポートするのは systemd 226以上のみです。
#TasksMax =無限大
タイムアウト開始秒= 0
# systemd が docker コンテナの cgroups をリセットしないように delegate yesを設定します
委任=はい
# cgroup内のすべてのプロセスではなく docker プロセスのみを強制終了します
キルモード=プロセス
再起動=オン-失敗
[インストール]
WantedBy =マルチユーザー.target
終了

4. dockerサービスを起動する

 systemctlデーモン-reload

# 起動時に自動的に開始するように設定し、サービスをすぐに開始します--now: サービスをすぐに開始します
systemctl enable --now docker

# コンテナのステータスを表示
systemctl ステータス docker

5. イメージダウンロードアクセラレータとcgroupdriverを構成する

 cat > /etc/docker/daemon.json << EOF
{
"レジストリミラー" : [ "http://hub-mirror.c.163.com" ] ,
"exec-opts" : [ "native.cgroupdriver=systemd" ]
}
終了

systemctl dockerを再起動します

2) kubeadm、kubelet、kubectlのオフラインインストール

1. ダウンロード

ダウンロードアドレス: https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG

 https://dl.k8s.io/v1.23.6/kubernetes-server-linux-amd64.tar.gzを取得します。

tar - xf kubernetes -サーバー- linux - amd64 .tar .gz

cd kubernetes /サーバー/ bin
cp -ar kubelet kubeadm kubectl / usr / bin /

2. kubeadmスタートアップファイルを構成する

 cat > /usr/lib/systemd/system/kubelet.service << EOF
[ユニット]
Descriptinotallow = kubelet : Kubernetes ノードエージェント
ドキュメント= https://kubernetes.io/docs/

[サービス]
ExecStart =/ usr / bin / kubelet
再起動=常に
開始制限間隔= 0
再起動秒数= 10

[インストール]
WantedBy =マルチユーザー.target
終了

#ExecStartコンテンツの改行に注意してください
mkdir -p /usr/lib/systemd/system/kubelet.service.d/
cat >/ usr / lib / systemd / system / kubelet .service .d / 10 - kubeadm .conf << EOF
[サービス]
環境変数'KUBELET_KUBECONFIG_ARGS'設定します。
環境変数notallow = "KUBELET_CONFIG_ARGS=--cnotallow=/var/lib/kubelet/config.yaml"
Envirnotallow =-/ var / lib / kubelet / kubeadm - flags.env
環境許可=-/ etc / sysconfig / kubelet
実行開始=
ExecStart =/ usr / bin / kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS
終了

3. 画像をインポートする

リソース パッケージをダウンロードし、解凍して、画像ディレクトリに入ります。次に、次のコマンドを実行してイメージをインポートします。

 sh イメージロード.sh

4. kubeletを起動する

 # 起動時に自動的に開始するように設定し、サービスをすぐに開始します--now: サービスをすぐに開始します
systemctl enable --now kubelet

3) クラスタの初期化

1. 高可用性のための VIP を生成するために keepalived をインストールする

【1】ダウンロード ダウンロードアドレス:https://www.keepalived.org/download.html

 wget https://www.keepalived.org/software/keepalived-2.2.7.ta ​​r.gz --no - check - 証明書

tar - zxvf keepalived - 2.2 .7 .tar .gz

# openssl をインストールします (keepalived のコンパイルに必要)
yum -y openssl をインストール openssl -devel

# keepalived をコンパイルする
yum で gcc をインストール-y

cd keepalived - 2.2 .7 && ./configure --prefix=/usr/local/keepalived --syscnotallow=/etc
作成&&インストール

# 環境変数を設定する
cp / usr /ローカル/ keepalived / sbin / keepalived / usr / sbin / keepalived

【2】マスター構成

 cat > /etc/keepalived/keepalived.conf << EOF
keepalived の設定ファイル
グローバル定義{
#各キープアライブに異なる名前を付ける
ルータID 56
}
vrrp_インスタンス VI_1 {
# MASTERはメインインスタンス BACKUPはスレーブインスタンスです
状態マスター
# ネットワークカード名
インターフェースens33
# マスターとバックアップは同じ設定にする必要があります
仮想ルータID 68
# 優先度プライマリはバックアップよりも高くなります。通常、プライマリは100に設定され、バックアップは80に設定されます。
優先度100
広告_int 1
# アクティブプリエンプションが有効な場合サーバーがプリエンプトした後このサーバーのキープアライブが停止するまで待機してから、別のサーバーに移動します。
先取りしない
認証
# マスターとバックアップは同じ設定にする必要があります
認証タイプ PASS
# マスターとバックアップは同じ設定にする必要があります
認証パス1111
}
仮想IPアドレス{
# vip プライマリとバックアップは同じに構成する必要があります
192.168 .182 .211
}
}
終了

【3】バックエンドの設定

 cat > /etc/keepalived/keepalived.conf << EOF
keepalived の設定ファイル
グローバル定義{
#各キープアライブに異なる名前を付ける
ルータID 56
}
vrrp_インスタンス VI_1 {
# MASTERはメインインスタンス BACKUPはスレーブインスタンスです
状態 バックアップ
# ネットワークカード名
インターフェースens33
# マスターとバックアップは同じ設定にする必要があります
仮想ルータID 68
# 優先度プライマリはバックアップよりも高くなります。通常、プライマリは100に設定され、バックアップは80に設定されます。
優先度80
広告_int 1
# アクティブプリエンプションが有効な場合サーバーがプリエンプトした後このサーバーのキープアライブが停止するまで待機してから、別のサーバーに移動します。
先取りしない
認証
# マスターとバックアップは同じ設定にする必要があります
認証タイプ PASS
# マスターとバックアップは同じ設定にする必要があります
認証パスワード1111
}
仮想IPアドレス{
# vip プライマリとバックアップは同じに構成する必要があります
192.168 .182 .211
}
}
終了

【4】サービスの起動を設定する

 cat > /usr/lib/systemd/system/keepalived.service << EOF
[ユニット]
Descriptinotallow = LVSおよびVRRP 高可用性モニター
=ネットワーク-オンライン.target syslog .target
欲しいもの=ネットワーク-オンライン.target
ドキュメント化不可= man : keepalived ( 8 )
ドキュメント化不可= man : keepalived .conf ( 5 )
ドキュメント化不可= man : genhash ( 1 )
ドキュメント許可= https://keepalived.org

[サービス]
タイプ=フォーク
PIDファイル=/ run / keepalived.pid
キルモード=プロセス
環境許可=-/ usr /ローカル/ keepalived / sysconfig / keepalived
ExecStart =/ usr / local / keepalived / sbin / keepalived $KEEPALIVED_OPTIONS
ExecReload =/ bin / kill - HUP $MAINPID

[インストール]
WantedBy =マルチユーザー.target

終了

【5】keepalivedを起動する

 systemctlデーモン-reload
systemctl enable --now キープアライブ

2. 初期化設定ファイルを作成する

ここではVIPが使用されていることに注意してください

 kubeadm config 印刷 init -デフォルト> kubeadm - config .yaml

3. K8s クラスターの初期化

ここで、tee コマンドを追加して、初期化ログを kubeadm-init.log に出力し、バックアップします (オプション)。

 kubeadm init --cnotallow=kubeadm-config.yaml --experimental-upload-certs | kubeadm-init.log を tee する

または直接初期化する

 kubeadm 初期化 \
--apiserver-advertise-address=192.168.182.211 \
--イメージリポジトリ registry.aliyuncs.com/google_containers \
--control-plane-endpoint=クラスターエンドポイント \
--kubernetes-バージョン v1.23.6 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16 \
--v=5

4. cniプラグイン(flannel)をインストールする

 # wget https://raw.githubusercontent.com/flannel-io/flannel/v0.20.2/Documentation/kube-flannel.yml
kubeclt 適用- f kube -フランネル.yml

4) マスターノードを追加する

 # 追加する必要があるマスターノードで実行します

CERT_KEY = `ssh クラスター-エンドポイント"kubeadm init phase upload-certs --upload-certs|tail -1" `

join_str = `ssh クラスター-エンドポイント kubeadm トークン作成--print-join-command`

echo $join_str " --control-plane --certificate-key $CERT_KEY --v=5"

# 上記のコマンドを取得し、追加するノードで実行します

# --control-plane フラグは、kubeadm join に新しいコントロール プレーンを作成するように指示します。マスターに参加するにはこのマークを追加する必要があります
# --certificate-key ... により、コントロール プレーン証明書がクラスター内の kubeadm-certs シークレットからダウンロードされ、指定されたキーを使用して復号化されます。ここでの値は、上記のコマンド (kubeadm init phase upload-certs --upload-certs) によって印刷されたキーです。

mkdir -p $HOME / .kube
sudo cp -i /etc/kubernetes/admin.conf $ HOME / .kube / config
sudo chown $ ( id - u ) : $ ( id - g ) $HOME / .kube / config

# マスター汚染を除去する
# kubectl taint nodes `hostname` node - role .kubernetes .io / master : NoSchedule - 2 >/ dev / null
# kubectl taint ノード `hostname` ノード.kubernetes .io / not - ready : NoSchedule - 2 >/ dev / null

5) ノードを追加する

 CERT_KEY = `ssh クラスター-エンドポイント"kubeadm init phase upload-certs --upload-certs|tail -1" `

join_str = `ssh クラスター-エンドポイント kubeadm トークン作成--print-join-command`

echo $join_str " --certificate-key $CERT_KEY --v=5"

6) IPVSを設定する

1. ip_vs関連のカーネルモジュールをロードする

 modprobe --ip_vs
modprobe --ip_vs_sh
modprobe --ip_vs_rr
modprobe --ip_vs_wrr
# ipvsが有効になっていることを確認する
lsmod | grep ip_vs

2. ipvsadmツールのオフラインインストール

オンラインインストールは非常に簡単です

 yum インストール ipvsadm -y

ダウンロードアドレス: http://www.linuxvirtualserver.org/software/ipvs.html

 wget https://kernel.org/pub/linux/utils/kernel/ipvsadm/ipvsadm-1.31 .tar .gz --no - check - certificate
tar - xzvf ipvsadm - 1.31 .tar .gz && cd ipvsadm - 1.31

# 最初に依存パッケージをインストールします
yum インストール-y libnl libnl -devel gcc
# コンパイルしてインストール
作成&&インストール

# バージョン番号を確認する
ipvsadm -バージョン

3. kube-proxy設定ファイルを編集し、モードをipvsに変更します。

 kubectl edit configmap - n kube -システム kube -プロキシ

4. kube-proxyを再起動します

 # 最初に確認
kubectl get ポッド- n kube -システム| grep kube -プロキシ
# もう一度削除して自動的に表示されるようにする
kubectl get ポッド- n kube -システム| grep kube -プロキシ| awk '{system("kubectl delete ポッド "$1" -n kube-system")}'
# もう一度確認
kubectl get ポッド- n kube -システム| grep kube -プロキシ

7) ingress-nginxをインストールする

 # wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.2.0/deploy/static/provider/cloud/deploy.yaml-O/tmp/deploy.yaml

kubectl適用-f /tmp/deploy.yaml

8) NFSプロビジョナーをインストールする

1. helmをインストールする

helm インストール パッケージも提供されているリソース パッケージに含まれているため、インターネットからダウンロードする必要はありません。

 # パッケージをダウンロードする
https://get.helm.sh/helm-v3.7.1-linux-amd64.tar.gz-O/tmp/helm-v3.7.1-linux-amd64.tar.gz
# 圧縮パッケージを解凍する
tar - xf / tmp / helm - v3 .7 .1 - linux - amd64 .tar .gz - C /ルート/
# ソフトリンクを作成する
ln -s /ルート/ linux - amd64 / helm / usr /ローカル/ bin / helm

2. Helmウェアハウスソースを追加する

 # helm リポジトリソースを追加する
helmリポジトリにnfs -サブディレクトリ-外部-プロビジョナーを追加しますhttps://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/

3. nfsをインストールする

【サーバ】

 #### nfs をインストールする
yum -y nfs をインストール-utils rpcbind

# サーバー
mkdir -p / opt / nfsdata を実行します。
# 共有ディレクトリを承認する
chmod 666 / opt / nfsdata
cat > / etc / exports << EOF
/ opt / nfsdata * ( rw no_root_squash no_all_squash sync )を設定します。
終了
# 設定が有効になります
エクスポートfs -r

systemctl enable --now rpcbind
systemctl enable --now nfs-server

【クライアント】

 yum -y rpcbindをインストールします
systemctl enable --now rpcbind

3. NFS プロビジョナー

 ### NFS プロビジョナーを Helm にインストールします。インストール パッケージも提供リソースに含まれているため、インターネットからダウンロードする必要はありません。
helmインストールnfs -サブディレクトリ-外部-プロビジョナー./nfs-subdir-external-provisioner-4.0 .17 .tgz \
--namespace=nfs-プロビジョナー \
--名前空間を作成 \
--set image.repository=willdockerhub/nfs-subdir-external-provisioner \
--set イメージタグ = v4.0.2 \
--set レプリカ数=2 \
--set storageClass.name=nfs-client \
--set storageClass.defaultClass=true \
--set nfs.server=クラスタエンドポイント \
--set nfs.path=/opt/nfsdata

# チェック
kubectl ポッドの取得デプロイ sc - n nfs -プロビジョナー

9) ダッシュボードをインストールする

1. インストール

GitHub アドレス: https://github.com/kubernetes/dashboard

 kubectl apply -fダッシュボード.yaml
# チェック
kubectl get pods svc - n kubernetes -ダッシュボード

2. ログインユーザーを作成する

 cat > ServiceAccount .yaml << EOF
APIバージョン: v1
種類:サービスアカウント
メタデータ:
名前:管理者-ユーザー
名前空間: kubernetes -ダッシュボード
---
apiバージョン: rbac .authorization .k8s .io / v1
種類: ClusterRoleBinding
メタデータ:
名前:管理者-ユーザー
ロールリファレンス:
apiグループ: rbac .authorization .k8s .io
種類: ClusterRole
名前:クラスター-管理者
科目:
-種類:サービスアカウント
名前:管理者-ユーザー
名前空間: kubernetes -ダッシュボード
終了
kubectl apply -fサービスアカウント.yaml

3. ログイントークンを作成して取得する

 kubectl - n kubernetes -ダッシュボード トークンの作成admin -ユーザー

4. Webにログインする

ログインアドレス: https://ip:31443/。次のようなプロンプトが表示される場合は、Firefox を試すことをお勧めします。 (証明書をお持ちの場合は、そのような問題は発生しません。)

Firefoxブラウザでウェブにアクセス

10) イメージリポジトリHarborをインストールする

1. 証明書を作成する

 mkdir stl && cd stl
# CA証明書の秘密鍵を生成する
openssl genrsa -出力 ca .key 4096
# CA証明書を生成する
openssl 要求- x509 -新規-ノード- sha512 -日数3650 \
-件名"/C=CN/ST=広東省/L=深セン/O=港/OU=港/CN=myharbor.com" \
-key ca .key \
-out ca .crt
# ドメイン名証明書を作成し、秘密鍵を生成する
openssl genrsa -アウト myharbor .com .key 4096
# 証明書署名要求CSRを生成する
openssl 要求- sha512 -新規 \
-件名"/C=CN/ST=広東省/L=深セン/O=港/OU=港/CN=myharbor.com" \
-key myharbor.com.key \
-アウト myharbor .com .csr
# x509 v3 拡張機能を生成する
cat > v3 .ext <<- EOF
権限キー識別子=キーID 発行者
basicCnotallow = CA : FALSE
keyUsage = digitalSignature nonRepudiation keyEncipherment dataEncipherment
拡張キー使用法= serverAuth
subjectAltName = @alt_names

[別名]
DNS .1 = myharbor .com
DNS .2 =* .myharbor .com
DNS .3 =ホスト名
終了
#港湾アクセス証明書の作成
openssl x509 -要求- sha512 -日数3650 \
-extファイルv3 .ext \
- CA ca .crt - CAkey ca .key - CAcreateserial \
- myharbor.com.csr \
-アウト myharbor .com .crt

2. 証明書キーを作成する

 kubectl シークレット tls myharbor .com --key myharbor.com.key --cert myharbor.com.crt -n harborを作成します
kubectl シークレット myharbor .com - n ハーバーを取得します

3. チャートライブラリを追加する

 helmリポジトリに harborを追加しますhttps://helm.goharbor.io

4. 港湾の展開を開始する

 # インストールパッケージをダウンロードする
舵を取る 港/
# harbor - 1.11 .1 .tgzインストール パッケージは提供されているリソース パッケージに含まれているため、インターネットからダウンロードする必要はありません。
helm myharbor をインストールします。 /- 1.11 .1 .tgz \
--namespace=ハーバー --create-namespace \
--set expose.ingress.hosts.core=myharbor.com \
--set expose.ingress.hosts.notary=notary.myharbor.com \
--set-string expose.ingress.annotations.'nginx\.org/client-max-body-size'="1024m" \
--set expose.tls.secretName=myharbor.com \
--set persistence.persistentVolumeClaim.registry.storageClass=nfs-client \
--set persistence.persistentVolumeClaim.jobservice.storageClass=nfs-client \
--set persistence.persistentVolumeClaim.database.storageClass=nfs-client \
--set persistence.persistentVolumeClaim.redis.storageClass=nfs-client \
--set persistence.persistentVolumeClaim.trivy.storageClass=nfs-client \
--set persistence.persistentVolumeClaim.chartmuseum.storageClass=nfs-client \
--set 永続性を有効にする = true \
--set 外部URL=https://myharbor.com \
--set harborAdminPassword=Harbor12345

5. 表示

 kubectl get pods  ingress - n harbor を実行します。

5. Webアクセス

ホストを構成する(実際のドメイン名の場合は、ホストを構成する必要はありません)

 192.168 .182 .110マイハーバー.com

訪問: https://myharbor.com/

アカウント/パスワード: admin/Harbor12345 (注: ここでのパスワードは上記のインストール時にカスタマイズされます)

<<:  ハイブリッドクラウドアーキテクチャモデルを1つの記事で解説

>>:  Kubernetes がクラスター外部にサービスを公開する方法をご存知ですか?

推薦する

nofollowタグの役割と利点

nofollowタグ(中国語などで「フォローする」という意味)といえば、ご存知の方も多いと思います。...

ウェブサイトのキーワードの選択と拡張では、どのような原則に従うべきでしょうか?

ウェブサイトを構築する前に、まず行う必要があるのは、ウェブサイトのキーワードを選択することです。これ...

yourlasthost-256MメモリKVM仮想VPSは年間わずか12.95ドル、Windowsシステム付き

yourlasthost のロサンゼルスとジャック ウィルソンのデータ センターは、同時に特別プロモ...

ライブ放送ルームで使用する商品はどのように選択すればよいですか?ライブ配信で商品選びができるチャンネル!

ライブ放送室では、どのように商品を選択すればよいですか? ライブ放送用の商品を選択するチャネルは何で...

Yixun、JD.comの警告書に反論:価格比較は違法ではない

JD.comが、易訊の「高価格補償」サービスが不正競争防止法に違反していると非難したことに対し、テン...

クイックルック | 2月の金融業界アプリにおけるモバイル広告の分析

工業情報化部の公開データによると、2018年12月末現在、中国市場で監視されているアプリの総数は44...

anynode: cn2 gt (zenlayer) + KVM シリーズ VPS、年間 15 ドルから、Alipay が利用可能

anynodeは、同社のVPSがロサンゼルスのZenlayerデータセンターネットワークに接続されて...

host1plus - まもなく仮想ホストを閉鎖し、20% 割引で新しい Virtuozzo 7 VPS をオープンします

9月、host1plusは突然次のことを発表しました。[1] 9月11日から、仮想ホストおよび再販ホ...

ネットワークマーケティングのスキルについて簡単に説明します

インターネット マーケティングの場合、インターネット マーケティング手法が価値があるかどうかを判断す...

競合他社の外部リンク公開リソースを正確に分析して取得する方法

みなさんこんにちは。前回の「フレンドリーリンク:翡翠を磨くための良いリソース」の説明に引き続き、今回...

#無料 DA パネル Virpus - $15/Xen/6 コア/2g メモリ/60g SSD/4T トラフィック/シアトル

virpus からの朗報です。Linux VPS (2G メモリ以上) を購入すると、永久に 25%...

WOT Shi Yang: IoT時代のインテリジェントエッジコンピューティング

[51CTO.com からのオリジナル記事] 7 年間の努力と見事な変貌。 2012年以降、6年連続...

旅行ウェブサイトはどうすれば注目を集め続けることができるでしょうか?

先日のメーデーは、気候が温暖だったため、各地の観光客数が春節ゴールデンウィークや清明節の観光客数を上...

Baidu K-station事件:最善の解決策は、影響を受けたウェブマスターが問題を解決することです

最初の段落は導入部と呼ぶべきでしょう。最近、ウェブマスターの間で最も話題になっているのは、Baidu...