プロジェクトがパス プラットフォームを簡単に使用してサービスをデプロイする方法

目次

序文:

1: パスプラットフォームの利点

2: パスプラットフォームの関連要素

3: docker|jenkins\k8s\pass\git 間の関係

4: プロジェクトでのパスの使用方法

5:パスホームの日常的な運用

5.1 アプリケーションの再起動

5.1.1 名前空間下のコンテナプロジェクトへの配置

5.1.2 サービスの再開

5.2 ログビュー

5.2.1 パスプラットフォームでのログの表示

5.2.2 Splunk ビューのログ

5.3 プロジェクト環境変数をページに追加する

5.4 プロジェクトのリーク IP を表示する

5.5 新規ログインユーザーの追加

5.6 configmap設定ファイルの変更

6: パスプラットフォームの一般的な使用の問題

6.1 プロジェクト デプロイメント エラー コンテナー...

6.2 jenkins デプロイメント エラー: オブジェクトがありません...

6.3 スケールアップしたレリカセットパス...

7: 組立ラインでパス プラットフォーム プロジェクトを構築する方法

7.1passプラットフォーム保守基本構成

7.1.1 F5 設定

7.1.2 ミラーウェアハウスの保守

7.1.3 プロジェクトと名前空間の作成

7.1.4 アプリケーション管理者ユーザーの作成

7.2 Jenkins の新しいパイプライン

7.2.1 新しいパイプライン タスクの追加

7.2.2 Jenkins の一般的な変数設定

7.2.3 ビルドトリガーとその他の構成

7.2.4 パイプラインの構成


序文:

k8s の基本アプリケーション、サーバー クラスター、UI ページは、オリジナルのファクトリーから提供された運用ドキュメントに従って構築できますが、この記事ではこれに基づいてプロジェクトをデプロイし、サービスをアップグレードする方法についてのみ説明します。

1: パスプラットフォームの利点

パスプラットフォームを使用する理由

 パス プラットフォームは主に、ソフトウェア リソース (ミドルウェア、オペレーティング環境) の迅速な供給と迅速な展開の問題を解決します。

2 つ目は、サーバーなどの問題によって展開上の問題や運用上の問題が発生した場合に備えて、生成された環境コードの動作環境 (つまり、イメージ) がテスト環境と一致していることを確認することです。

2: パスプラットフォームの関連要素

コンテナと仮想マシン:

1. コンテナはプロセスとして実行され、ホストのカーネルを他のコンテナと共有します。非常に軽量であり、仮想マシンが実行されると、それは完全なオペレーティング システムになります。

2.docker の基本コンポーネント:

Docker イメージ: ユーザーが Docker コンテナを作成するためのテンプレート。イメージに基づいて迅速にデプロイできます。

Docker コンテナ: 操作をミラーリングするエンティティ。各コンテナは完全な Linux システムに相当します。

docker ウェアハウス: ミラー イメージを保存するサーバー。jenkins がミラー イメージを作成するとき、ビルド後にウェアハウスにプッシュされます。

3.k8s

コアは呼び出しとスケジューリングであり、コンテナの操作を担当し、その後にサーバー コンテナのリソース、ネットワーク アクセス、ストレージ、セキュリティなどを管理します。

ノード: 通常のポッド、特定のサービス、管理

rancher: k8s 管理プラットフォーム ページ、一般的なプロジェクト管理用の ui ページ

3: docker|jenkins\k8s\pass\git 間の関係

1.docker イメージ、リモート git コードに依存

3. Jenkins は、スクリプトの実行、コードのコンパイル、2dcker イメージの生成、港湾倉庫のアップロード、およびプロジェクトを初期化するためのコンテナ ノード構成の k8s へのプッシュを担当します。

4. 構成に従ってプロジェクトを構築するためのリソースのスケジュール設定

5. パスが依存する動作環境は docker イメージに依存します

ドキュメントを改善するための TODO フォローアップ

4: プロジェクトでのパスの使用方法

簡単なポイントは、プロジェクト内に新しいスクリプト フォルダーを作成し、スクリプトとジェンキンを通じてビルド サービスを完了することです。

含まれるもの: イメージの生成、イメージのアップロード、展開ファイルの生成、サービスの展開。

たとえば、スクリプトは次のとおりです。

dockerfile: ミラー構成を作成し、jar を準備して、jar コマンドを開始します

テンプレート: デプロイメント ファイル、ポッドによって要求されたリソース (例: cpu\memory\pod\load\health check など)。

build.sh: mvn はクリーンとインストールに依存します

create: コンポーネント内のパラメータはスクリプト内で自動的に置き換えられ、最終的なテンプレート展開ファイルが生成されます。

getversion: イメージ ID を生成します

jenkinsfile: Jenkins ビルドサービス実行スクリプト (実行プロセス、ミラーイメージ、アップロード、マップのロード、変数の置換、k8s デプロイメント、その他のプロセス全体)

1.dockfile:
FROM IP:端口号/public/jdk-monitor:1.8.0

COPY ./项目名/target/jar包名.jar /app/项目名/service/

EXPOSE 8080
WORKDIR /app/项目名/service/
CMD java -javaagent:/jmx-exporter/jmx_prometheus_javaagent-javaagent-0.16.1.jar=6060:
/jmx-jmxexporter/prometheus-jmx-config.yaml
 -jar ${JAVA_ARGS} ${JAVA_OPTS} /app/项目名/service/jar包.jar
 --spring.config.location=/app/项目名/service/conf



2.build.sh
#!/bin/bash
mvn clean install



3.getversion:以git提交代码唯一值生成镜像id
#!/bin/bash
#接受变量
paths=$1
name=$2
id=$3
files=$(ls $paths)

ver= git reflog | head -n 1 | awk '{print $1}'
for file in $files
do
    if [ "${file##*.}" = "jar" ];then
    str = ${file#${name}-*}
    version = ${name}-${id}-${ver}
    echo $version
    fi
done




4.create-configmap:替换变量,生成最终部署文件,以及生成configmap并上传服务
#!/bin/bash
#接受变量
PIPELINE_DIR=$1
APP=$2
ENV=$3
NAMESPACE=$4
IMAGE_REGISTRY=$5
PROJECT_NAME=$6
PORT=$7
PROJECT_ACTIVE=$3
BUILD_NUMBER=$9
PROJECT_VERSION=$8

mkdir -p ${PIPELINE_DIR}/deploy/${APP}/${ENV}
#开始替换项目配置变量,active
sed -i s/"PROJECT_ACTIVE"/"${PROJECT_ACTIVE}"/g
 项目名/src/main/resources/application.yml

#迁移项目配置文件路径
cp 项目名称/src/main/resource/*.yml /app/项目名/service/

#生成k8s configmap,放到指定命名空间项目下
APPLICATION=${APP}/src/main/resources/application.yml
APPLICATION_DEV=${APP}/src/main/resources/application-dev.yml

kubectl -n ${NAMESPACE} crate configmap ${APP} --from-file=${APPLICATION} --from-file=${APPLICATION_DEV} --dry-run=client -o yaml > ${PIPELINE_DIR}/deploy/${APP}/${ENV}
/${APP}-configmap.yaml

#接收镜像id,替换部署文件
VERSION = 'sh ${PIPELINE_DIR}/getversion.sh 项目名、target ${APP} ${PROJECT_VERSION} '

#开始替换部署文件变量
#镜像仓库地址
sed -i s/"IMAGE_REGISTRY"/"${IMAGE_REGISTRY}" /g ${PIPELINE_DIR}/${APP}/Template.yaml
#项目名称(应用pod)
sed -i s/"PROJECT_NAME"/"${PROJECT_NAME}" /g ${PIPELINE_DIR}/${APP}/Template.yaml
#服务暴漏外部访问端口号
sed -i s/"SERCVER_PORT"/"${PORT}" /g ${PIPELINE_DIR}/${APP}/Template.yaml
#项目名(集群中项目总名称)
sed -i s/"APP"/"${APP}" /g ${PIPELINE_DIR}/${APP}/Template.yaml
#镜像id
sed -i s/"VERSION"/"${VERSION}" /g ${PIPELINE_DIR}/${APP}/Template.yaml
#命名空间
sed -i s/"NAMESPACE"/"${NAMESPACE}" /g ${PIPELINE_DIR}/${APP}/Template.yaml
#环境变量
sed -i s/"DEPLOY_ENV"/"${ENV}" /g ${PIPELINE_DIR}/${APP}/Template.yaml

cp ${PIPELINE_DIR}/${APP}/Template.yaml ${PIPELINE_DIR}/deploy/${APP}/${APP}-configmap.yaml
cp ${PIPELINE_DIR}/deploy/${APP}/${ENV}/${APP}-configmap.yaml ${PIPELINE_DIR}/deploy/${APP}/${APP}-项目配置config.yaml




 ジェンキンスファイル:

 

 

 

 

テンプレート.yaml 

 

 

 

 

 

 yaml 中国語のコメント:

 

 

 

 

 上記の Jenkins をデプロイするときの参照パラメーターの意味:

 

5:パスホームの日常的な運用

5.1 アプリケーションの再起動

5.1.1 名前空間下のコンテナプロジェクトへの配置

5.1.2 サービスの再開

5.2 ログビュー

5.2.1 パスプラットフォームでのログの表示

5.2.2 Splunk ビューのログ

5.3 プロジェクト環境変数をページに追加する

5.4 プロジェクトのリーク IP を表示する

5.5 新規ログインユーザーの追加

5.6 configmap設定ファイルの変更

6: パスプラットフォームの一般的な使用の問題

6.1 プロジェクト デプロイメント エラー コンテナー...

6.2 jenkins デプロイメント エラー: オブジェクトがありません...

6.3 スケールアップしたレリカセットパス...

7: 組立ラインでパス プラットフォーム プロジェクトを構築する方法

7.1passプラットフォーム保守基本構成

7.1.1 F5 設定

7.1.2 ミラーウェアハウスの保守

7.1.3 プロジェクトと名前空間の作成

7.1.4 アプリケーション管理者ユーザーの作成

7.2 Jenkins の新しいパイプライン

7.2.1 新しいパイプライン タスクの追加

7.2.2 Jenkins の一般的な変数設定

7.2.3 ビルドトリガーとその他の構成

7.2.4 パイプラインの構成

おすすめ

転載: blog.csdn.net/qq_44691484/article/details/130674036