第44章マイクロサービスCICD(6) - gitlab +ジェンキンス+ドッカー+ K8S

第44章マイクロサービスCICD(6) - gitlab +ジェンキンス+ドッカー+ K8S

全体のプロセス:

  • gitlabに提出マシンの開発コードの開発した後、
  • ウェブフックプラグ構築ジェンキンス、ジェンキンス標識ドッカーコード画像によってトリガ後、ドッカー・レジストリをプッシュ
  • K8SマスターRC上で実行された後、それによってポッドを作成する、サービスを作成し、PWからミラーを引っ張る、開始コンテナミラーに基づきます

第四十三章マイクロサービスCICD(5) - gitlab +ジェンキンス +ドッカー、最初の2つのステップの実現。3番目のセクションのこの実現

 

まず、ジェンキンスとK8S-マスター二つのマシン間でパスワードのsshせずにアクセスを開きます

参考:第四章12マイクロサービスCICD(4) -ジェンキンス+ gitlab +ウェブフック+公開オーバーのssh(2)

SSHサーバーを追加します。

注:10.211.55.6ジェンキンスのマシン上のファイルのコピーがないことから、そのリモートディレクトリのブランク。

 

二、ジェンキンスサービスの設定

マシンを選択し、コマンドを実行します。

 

三、K8S-マスター(10.211.55.6)

1、SVCおよび/ data /ディレクトリ内のrcファイルの作成

1.1、myservice1-ドッカ - rc.yaml

コードをコピー

 1 apiVersion:V1
 2種類:ReplicationController
 3つのメタデータ:
 4名前:myservice1-ドッカ
 5スペック:
 6つのレプリカ:2
 7セレクタ:
 8アプリ:myservice1-ドッカ
 9テンプレート:
10のメタデータ:
11枚のラベル:
12アプリ:myservice1-ドッカ
13仕様:
14個のコンテナ:
15  - 名前:myservice1-ドッカ
16画像:10.211.55.4:5000/com.xxx/myservice1-docker:1.0-SNAPSHOT
17 imagePullPolicy:常に
18のポート:
19  -  containerPort:8080

コードをコピー

説明:imagePullPolicy:

  • 常に:タグはデフォルトの設定である、そして最新のであれば常に、ミラーを引っ張っ
  • IfNotPresent:ミラーが存在しない場合は、ミラーを引っ張って、そうでない場合は最新のタグの単語、この配置はデフォルトです
  • 決して

1.2、myservice1-ドッカ - svc.yaml

コードをコピー

 1 apiVersion:V1
 2種類:サービス
 3つのメタデータ:
 4名前:myservice1-ドッカ
 5スペック:
 6種類:NodePort
 7つのポート:
 8  - ポート:8080
 9 nodePort:30001
10セレクタ:
11アプリ:myservice1-ドッカ

コードをコピー

2. /データ/スクリプト/ディレクトリにservice_start.shスクリプトを作成します。

コードをコピー

 1#!/ binに/ bashの
 2輸出SERVICE_NAME = $ 1
 3 sleep_second = 3
 4 
 5エコー 'kubectl削除のrc $ {SERVICE_NAME}'
 6 kubectl削除のRC $ {SERVICE_NAME}
 7 
 8エコー 'kubectl削除サービス$ {SERVICE_NAME}'
 9 kubectl削除サービス$ {SERVICE_NAME}
10 
11エコー 'kubectl削除ポッド-lアプリ= $ {SERVICE_NAME}'
12個のkubectl削除ポッド-lアプリ= $ {SERVICE_NAME}
13 
14睡眠$ {} sleep_second
15 
16エコーは、「RCを作成します」
17 kubectlは-f /data/${service_name}-rc.yamlを作成します
18 
19エコー「サービスを作成します」
20 kubectlは-f /data/${service_name}-svc.yamlを作成します

コードをコピー

説明:

  • まず、対応するサービスRC、サービス、およびすべて有するアプリ= $ポッド{SERVICE_NAME}タグを削除
    • スクリプトが実行される最初の時間は、RC、サービス以来、ポッドは、エラーログを再生します、それを削除し、存在しない、それは(どんな効果を持っていなかった)問題ではありません。
  • 3Sを眠った後、
  • 最後に、サービスを作成するために、(この時点でポッドを作成し、レジストリから画像を引っ張って、そして最終的にミラーに応じてコンテナを起動)RCを作成する(外部アクセス・インタフェースを提供)

 

第三に、テスト

1.ローカル:

  • Gitは--all追加します
  • "テストK8SがCICD" -mコミットgitの
  • gitのプッシュ原点HEAD:DEV

2、コンソールジェンキンスを参照してください

3、ブラウザアクセスhttp://10.211.55.8:30001/docker/hello

オリジナルの記事は、0公表 ウォン称賛37 ビュー110 000 +を

おすすめ

転載: blog.csdn.net/superviser3000/article/details/104231144