Sealos を使用してオフライン環境に K8s クラスターを超高速でインストールする

著者:イン・ミン Sealos オープンソース コミュニティ アンバサダー、クラウド ネイティブ愛好家。

コンテナ化された配送とオフライン環境の融合

今日のペースの速いソフトウェア配信環境では、コンテナ化された配信が多くの企業にとって最適なテクノロジーとなっています。パブリック ネットワークにアクセスできる環境では、コンテナ化された配信はソフトウェアの開発と配信の効率を向上させるだけでなく、企業が迅速な反復と継続的な配信を実現するのにも役立ちます。

ただし、オフライン環境では、コンテナ化された配信は、ソフトウェア パッケージとイメージの準備の難しさ、構成の煩雑さ、導入時間の長期化など、多くの課題に直面します。この記事では、運用と保守の観点から、オフライン環境でコンテナ化された配信を使用する際の問題点を調査し、企業がオフライン環境で効率的なコンテナ化された配信を実現するのに役立ついくつかのソリューションを提案します。

ビジネスシーン

当社は主に政府および企業の顧客をターゲットにしており、提供される製品イントラネット上に展開される必要があります。私は運用保守担当者として、お客様のオフライン環境に業務システムをコンテナ化してどのように納品するかに悩んでいました。IDC のコンピュータ ルームは政府機関や企業の顧客向けに特殊な環境であるため、現在の運用保守学生はコンテナ配送を使用する際に効率が悪く、顧客満足度も高くありません。この問題を解決するには、迅速に対応できるソリューションを見つける必要があります。デプロイとオフライン環境でのデプロイ Kubernetes クラスターを管理するためのツール。

オフライン環境でのコンテナ化された配信には、次のような共通の問題点があります。

1. 学習と理解にかかるコストが高い

Kubernetes は複雑なシステムであり、使いこなすにはある程度の学習と理解が必要です。これは、このテクノロジーにあまり習熟していない運用保守エンジニアにとっては大きな困難です。

2. 画像管理

オフライン環境では、Kubernetes イメージと依存関係をインターネットから直接ダウンロードできません。したがって、必要なイメージと依存関係を事前にローカルにダウンロードし、Kubernetes クラスターにインポートする必要があります。これには時間と労力がかかる場合があります。

3. 環境構築

オフライン環境では、etcd、kube-apiserver、kube-controller-manager、kube-scheduler、kubelet、kube-proxy など、Kubernetes に必要なすべてのコンポーネントと依存関係を手動で構成する必要があります。これには、環境の初期化の問題をトラブルシューティングして解決するために、展開中に高度な運用およびメンテナンスの経験が必要です。

4. ネットワーク設定

Kubernetes クラスターでは、コンテナーが相互に通信できるようにネットワーク設定が正しく構成されている必要があります。オフライン環境では、ネットワークのセットアップがより複雑になる可能性があり、適切な動作を確保するには慎重なセットアップが必要です。

上記の一般的な問題点に基づいて、オフライン環境での配信にコンテナ化テクノロジーを使用することには依然として高い学習しきい値と構成の難しさがあり、すぐに使用できるライトニング配信の効果を達成することはできないことがわかります。

解決

1. Sealos を使用して、ワンクリックのパッケージングとライトニング配信を実現しますか?

Sealos は、Docker のようにクラスター全体をミラーリングして、分散ソフトウェアの構築、配信、運用を実現できます。

Sealos プロジェクトのアドレス: https://github.com/labring/sealos

2. 応用シナリオ

  • Kubernetes クラスターのインストール
  • Kubernetes クラスター、データベース、ミドルウェア、SaaS アプリケーションはすべてパッケージ化されており、ワンクリックで配信されます。
  • オフライン配信、マルチアーキテクチャサポート、ローカリゼーションサポート
  • Kubernetes 上で調整されたさまざまな分散アプリケーション配信

3. 導入アーキテクチャ図

4. Dockerfile によく似た Kubefile を作成してクラスター イメージを構築し、Clusterfile を使用してクラスターを実行します。

実際の導入

1. Sealos バイナリをダウンロードする

$ wget https://github.com/labring/sealos/releases/download/v4.1.4/sealos_4.1.4_linux_amd64.tar.gz \
   && tar zxvf sealos_4.1.4_linux_amd64.tar.gz sealos && chmod +x sealos && mv sealos /usr/bin

2. kubefileを記述してクラスターイメージを構築する

注:ここではデモンストレーションとしてCalicoを含むイメージをKubernetes1.24.0に基づいてカプセル化していますが、実際の業務イメージもこの方法に基づいてカプセル化できます。

FROM labring/kubernetes:v1.24.0-amd64
COPY cni ./cni
CMD ["kubectl apply -f cni/tigera-operator.yaml","kubectl apply -f cni/custom-resources.yaml"]
$ sealos build -t registry.cn-hangzhou.aliyuncs.com/flowyun/kubernetes-calico:latest -f Kubefile .

3. 構築したイメージを保存する

$ sealos save -o Kubernetes.tar registry.cn-hangzhou.aliyuncs.com/demo/Kubernetes-calico:latest

4. sealos バイナリ ファイルとクラスタ イメージをオフライン環境にコピーします

$ tar zxvf sealos_4.1.4_linux_amd64.tar.gz sealos && chmod +x sealos && mv sealos /usr/bin
$ sealos load -i Kubernetes.tar

5. クラスターイメージが正常にインポートされたかどうかを確認します

$ sealos images

6. クラスターのインストール

注: スタンドアロン インストールを例に挙げますが、クラスター インストールも同じです。

$ sealos run registry.cn-hangzhou.aliyuncs.com/demo/Kubernetes-calico:latest --single

7. クラスターの検証

$ kubectl get pod -A

8. アクセス業務システムの検証

効率比較

デプロイメントサービス名 従来の配信方法は導入に時間がかかる Sealos ライトニング配信メソッドの展開時間
MariaDB データベース 1時間 1分
ミドルウェア (redis、nacos) 1時間 30分
Kubernetesのセットアップ 4分
Kubernetes コンポーネントの構成とデバッグ 2時間
業務システムサービス 2時間
12 時間/人 31分/人

7. まとめ

  1. Sealos は、Kubernetes クラスターを迅速に展開してアップグレードできます。Sealos はオフライン パッケージを使用してソフトウェアを提供するため、インターネット接続に依存する必要がなく、オフライン環境でクラスターを迅速に展開およびアップグレードできるため、展開効率が向上します。
  2. Sealos はオフライン環境でも非常に安定して確実に動作します。Sealos の設計は外部ネットワークの変動の影響を受けないため、オフライン環境での実行時に非常に安定して信頼性が高く、信頼性が向上します。
  3. Sealos はオフライン パッケージを使用し、インターネットからソフトウェアをダウンロードする必要がないため、ネットワーク攻撃やマルウェアの影響を受けにくくなり、セキュリティが向上します。
  4. Sealos は標準の Kubernetes YAML ファイルを使用してクラスターを作成します。つまり、ユーザーはニーズに合わせてカスタマイズおよび拡張でき、柔軟性が向上します。
  5. Sealosは使い方が簡単で、複雑な設定やコマンドを必要とせず、ガイドに従って操作するだけなので、学習や使用の敷居が低くなり、使いやすさが向上します。

Sealos は、企業がオフライン環境で効率的なコンテナ化配信を実現できるようにする強力で使いやすいツールです。Sealos は、Kubernetes クラスターを迅速に展開およびアップグレードできます。オフライン環境で非常に安定して確実に実行されます。オフライン パッケージを使用し、インターネットからソフトウェアをダウンロードする必要がないため、ネットワーク攻撃やマルウェアの影響を受けません。標準の Kubernetes を使用します。 YAML ファイルを使用してクラスターを作成し、学習と使用の敷居を下げ、使いやすさを向上させます。

おすすめ

転載: blog.csdn.net/alex_yangchuansheng/article/details/132664063