KubeSphere DevOps システム機能の実践

KubeSphere DevOps システム機能の実践

序文

Jenkins ベースの KubeSphere DevOps システムは、Kubernetes の CI/CD ワークフロー専用に設計されています。開発チームと運用チームが Kubernetes にアプリケーションを非常にシンプルな方法で構築、テスト、リリースできるようにするワンストップ ソリューションを提供します。また、プラグイン管理、Binary-to-Image (B2I)、Source-to-Image (S2I)、コード依存関係のキャッシュ、コード品質分析、パイプラインのログ記録などの機能も備えています。

DevOps システムは、アプリケーションを同じプラットフォームに自動的にリリースできる自動化された環境をユーザーに提供します。また、サードパーティのプライベートイメージリポジトリ(Harbor など)やコードリポジトリ(GitLab/GitHub/SVN/BitBucket など)とも互換性があります。包括的で視覚的な CI/CD パイプラインをユーザーに提供し、優れたユーザー エクスペリエンスを実現します。この互換性の高いパイプライン機能は、オフライン環境で非常に役立ちます。

つまり、DevOps は、完全に自動化されたワンストップ サービスで、コードの取得、プロジェクトのコンパイル、イメージのビルド、イメージのプッシュ、プロジェクトのデプロイを行うのに役立ちます。

DevOps 機能のインストール方法については、https://kubesphere.io/zh/docs/pluggable-components/devops/ を参照してください。

DevOps プロジェクトを作成し、パイプラインを作成する

DevOps プロジェクトを作成します: エンタープライズ スペース -> DevOps プロジェクト -> 作成。プロジェクト名を入力し、「OK」をクリックします。

パイプラインを作成する: 作成した DevOps プロジェクトをクリックし、パイプライン メニューを見つけて [作成] をクリックし、パイプライン名を入力します。

コード リポジトリに入力してもしなくてもかまいません。今入力すると、Webhook アドレスが表示されます。このアドレスは Git (または他のウェアハウス) に移動するために使用できます。ウェアハウスは、コードが送信されるとパイプラインを自動的に実行するように設定されています。これはコールバックに相当するため、プロジェクト展開へのコードの送信は完全に自動的なプロセスになります。

ここでは、何も入力されていない状況を説明します。パイプライン名を入力したら、「次へ」をクリックし、「作成」をクリックします。

編集パイプライン

先ほど作成したパイプラインをクリックして入力し、「パイプラインの編集」をクリックします。

ご覧のとおり、テンプレートは 2 セットあります。ここでは 2 番目のセットを選択し、[保存] をクリックします。

効果を確認したら、「パイプラインの編集」をクリックします。

入力すると、右側にエージェントが表示され、その下にエージェントの種類とラベルが表示されます。プロキシタイプとして、ノードを選択します。以下のラベルには、base、go、maven、nodejs の 4 つのオプションがあります。

  • Java 関連のプロジェクトをパッケージ化する場合は、Maven を選択できます。
  • フロントエンドプロジェクトの場合は、nodejs を使用できます。
  • Go 言語で開発している場合は、go を選択できます。
  • その他の場合は、ベースを選択できます。

公式ウェブサイトの説明: https://kubesphere.io/zh/docs/devops-user-guide/how-to-use/choose-jenkins-agent/。

ここでは Java プロジェクトをデプロイしているので、Maven を選択しました。

1. プルコード

  • ステップ 1: クリックすると、右側にウィンドウが表示されます。
  • ステップ 2: ステージの名前を入力します。
  • ステップ 3: Maven コンテナを使用するため、指定されたベース コンテナを削除します。

ステップの追加をクリックします:

特定のコンテナを選択します:

コンテナ名を入力して「OK」をクリックします。

ネストされたステップの追加をクリックします。

Git 経由でコードをプルすることを選択します。もちろん、svn を使用している場合は、以下のチェックアウトを選択できます。エディターはgitを使用します。

gie リポジトリの URL とブランチを入力し、[資格情報の作成] をクリックします。

  • 資格情報 ID を入力します。これはランダムに命名できます。
  • タイプ: アカウント資格情報を選択します。
  • ユーザー名: git のユーザー名。
  • トークン/パスワード: git パスワード。

次に「OK」をクリックします。

プルされたコード ディレクトリを表示する場合は、ネストされたステップを追加できます。

次に、「OK」をクリックして「保存」をクリックします。

完了したら、「実行」をクリックして効果を確認できます。

2. プロジェクトのコンパイル

実行後、もう一度「パイプラインの編集」をクリックし、2 番目のステップをクリックして、名前に「プロジェクトのコンパイル」と入力します。

同様に、Maven コンテナを指定し、ネストされたステップ: シェル スクリプトを追加して、Maven パッケージ化コマンドを入力します。

 パッケージクリーンアップます テストスキップ= 

「確認」をクリックし、「保存」をクリックして実行し、効果が成功したかどうかを確認することもできます。

3. イメージを構築する

実行後、もう一度「パイプラインの編集」をクリックし、3 番目のステップをクリックして、名前に「Build Image」と入力します。エージェントタイプ: なしを選択します。

同様に、Maven コンテナを指定し、ネストされたステップ: シェル スクリプトを追加し、コマンドを入力して、ディレクトリ内のファイルを表示します。

 ls isee - ゲートウェイ/ ターゲット

docker build image コマンドを入力します。

 $ docker build -t isee - gateway : 最新-f isee - gateway / Dockerfile isee - gateway /  

パラメータの説明: isee-gateway:latest: イメージ名とラベル -f: このディレクトリに isee-gateway/: をビルドするための Dockerfile ファイルを指定します。

実際の使用では、一度に 1 つのイメージを構築することはできません。イメージをビルドする必要があるマイクロサービスが複数または数十ある場合があるため、ここで並列ステップを追加し、上記のステップを続行してビルドすることもできます。

4. 画像をプッシュする

実行後、もう一度「パイプラインの編集」をクリックし、4 番目のステップをクリックします。

  • 名前を入力してください: Push Image; (イメージを Alibaba Cloud イメージ リポジトリにプッシュしますが、もちろん他のリポジトリやプライベート リポジトリにプッシュすることもできます)。
  • プロキシタイプの選択: なし。

同様に Maven コンテナを指定し、ネストされたステップ「資格情報の追加」を追加します。

[OK]をクリックします。作成後、先ほど作成した資格情報を選択し、ユーザー名とパスワードの変数を入力します(ユーザー名とパスワードが変数として使用されることを意味します。この変数を使用して、Alibaba Cloud ウェアハウスにログインしたり、イメージをプッシュしたり、その他の操作を行うことができます。このように、ユーザー名とパスワードを手動で入力する必要はありません)。

[Alibaba Cloud Warehouse にログイン] ネストされたステップを追加し、シェル スクリプトを選択して、次のコンテンツを入力します (ここではユーザー名とパスワードの変数を使用します)。

 $ echo "$DOCKER_PWD_VAR" | docker ログイン$REGISTRY - u "$DOCKER_USER_VAR" -- パスワード- stdin

[画像にタグを付ける] ネストされたステップを追加し、シェル スクリプトを選択して、次のように入力します。

 $ docker tag isee - ゲートウェイ: 最​​新の$REGISTRY / $DOCKERHUB_NAMESPACE / isee - ゲートウェイ: SNAPSHOT - $BUILD_NUMBER

[プッシュ画像] ネストされたステップを追加し、シェル スクリプトを選択して、次のように入力します。

 $ docker push $REGISTRY / $DOCKERHUB_NAMESPACE / isee - ゲートウェイ: SNAPSHOT - $BUILD_NUMBER

もちろん、ここで並列ステップを追加して、複数のイメージを同時にウェアハウスにプッシュすることもできます。

この時点であなたは混乱するかもしれません。上記では、DOCKER_PWD_VAR と DOCKER_USER_VAR の 2 つの変数だけでなく、REGISTRY 変数も使用されています。それで、この変数は何でしょうか?定義はどこにありますか?

パイプラインを保存したら、[Jenkinsfile の編集] をクリックします。

下部に、REGISTRY 変数が定義されていることがわかります。 REGISTRY 変数の値を Alibaba Cloud 倉庫のアドレスに変更するだけです。

完了したら、保存して実行し、成功したかどうかを確認します。

5. 展開

いつものように、次の手順に従います。

次の手順に従って続行します。

新しい資格情報を作成します:

記入が必要なバウチャーIDがあります。どのように記入すればよいですか?

まずパイプラインを保存し、Jenkinsfile の編集をクリックします。下部に KUBECONFIG_CREDENTIAL_ID という名前の変数があり、変数の値は demo-kubeconfig です。この値を入力するだけです。

資格情報が作成されたら、「OK」をクリックして完了します。

パイプラインを保存し、「実行」をクリックします。この時点で、パイプライン全体が編集されました。

<<:  クラウドネイティブ クラスタにおけるネットワーク トラフィックの可観測性に関する考察

>>:  盛業:産業のデジタル化を支援し、デジタルエコシステムを構築

推薦する

CtripとQunarが合併し、中国最大のオンライン旅行会社に

10月26日夜のニュース、Ctrip.comは今晩、Baiduとの株式交換取引に合意したと発表した。...

マンツアジアと中国の大手ディスプレイメーカーが共同で力を発揮し、テレビパネル照明の新記録を樹立

幅広い技術ポートフォリオを持ち、世界的に活躍するハイテク機器メーカーである Manz AG は、実践...

Baidu 検索エンジンはヒットアルゴリズムを追加しましたか?

現在の百度検索エンジンがヒットアルゴリズムを追加したかどうかはまだ完全に確認されておらず、百度がそれ...

地域ポータルサイトのコンテンツ構築のボトルネックを打破し、強みを活かすことが鍵

現在、ローカルポータルの構築は、チームで運営する傾向が強まっています。一人で戦う時代はほぼ終わりまし...

raksmartはどうですか? 「ブティックネットワークライン」の韓国VPSのレビュー

raksmart Koreaはどうですか? raksmart 韓国 VPS はどうですか? Raks...

ナビゲーションサイトと検索エンジンのゲーム

前世紀末のインターネットは、中国のインターネットの始まりでした。今日のインターネットの巨人であるアリ...

ハイブリッドクラウドを有効活用するために5つの障害を解決しましょう

過去数年間、企業はデータ、アプリケーション、開発作業をクラウドに移行する傾向が強まっています。この傾...

ブランドイノベーション理論: ソーシャルマーケティング

「新しいコミュニティ」のはしご(モデル)は、「ブランド・イノベーション理論:群衆を折りたたむ - 「...

サンノゼにある raksmart の 100M 帯域幅専用サーバーの簡単なレビューです。raksmart がデータを通じてどのように機能するかを説明します。

Raksmartは、米国サンノゼに本社を置く歴史ある企業です。コンピュータルーム、設備、ネットワーク...

Kafka の消費とハートビートのメカニズム

1. 概要最近、カフカの消費とハートビートのメカニズムについて相談する学生もいます。今日は、このブロ...

SEO 担当者が知っておくべき 6 つの「スパイダー トラップ」

SEO に携わる人なら誰でも、Web ページがユーザーによって検索されるためには適切なキーワードを選...

Virpus - 創業10年のブランド、シアトルのXen PV仮想VPSが40%オフ、生涯価格

Virpus は本日、全製品 (SSD ハード ドライブのみ) が 40% オフとなる 2 日間の ...

予算vm-54.99USD/E3-1230V3/16GB RAM/1TB HDD/30TB フロー/5IP

budgetvm が特別なサーバーをリリースしました。最初の 1 か月は、半額の 54.99 ドルで...

個人 SEO 担当者として契約を交渉する方法 (パート 2)

5 日に、SEO 担当者が取引交渉を経験したいくつかの記事を公開しました。その後、取引交渉の過程で遭...