溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用java kustomize

發(fā)布時(shí)間:2021-11-17 13:37:44 來源:億速云 閱讀:124 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“如何使用java kustomize”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何使用java kustomize”吧!

下載安裝

  • Windows下載

  • Linux:

curl -s "https://raw.githubusercontent.com/ \
kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"  | bash

linux環(huán)境下,為方便命令行調(diào)用,可將文件移動到PATH變量下的bin目錄:sudo mv kustomize /usr/local/bin

  • 其他方式參考官方文檔

為什么使用

  1. 統(tǒng)一規(guī)范容器編排文件。

  2. 復(fù)用通用配置。

  3. 分環(huán)境管理編排文件。

  4. 專注于環(huán)境變量,存儲卷等本地化的配置,無需關(guān)心端口,監(jiān)控,發(fā)布等細(xì)節(jié)。

使用方式

使用前提:理解base編排的概念:base編排在遠(yuǎn)程git倉庫,提供基礎(chǔ)的約定好的配置,如端口,監(jiān)控,健康監(jiān)測,環(huán)境變量等。各應(yīng)用程序以base編排為基礎(chǔ),自定義其余的內(nèi)容。

1.創(chuàng)建目錄結(jié)構(gòu)

  • 在項(xiàng)目根目錄創(chuàng)建kustomize文件夾,其中包含lan,test,prod三個(gè)子文件夾(內(nèi)網(wǎng),線上測試,正式環(huán)境),

  • 每個(gè)文件夾下必須有一個(gè)kustomization.yaml 文件,可選的env.yaml用于配置環(huán)境變量,volume.yaml用于配置存儲卷。

  • 運(yùn)行腳本可根據(jù)情況自己配置。

如何使用java kustomize

2.修改kustomization.yaml配置說明

以下以學(xué)服系統(tǒng)(lmss-system)中的lan環(huán)境為例子

如何使用java kustomize

  1. ref的值為lan/test/master,分別對應(yīng)內(nèi)網(wǎng),測試,正式環(huán)境,表示引用base編排為基礎(chǔ)。

  2. 用于替換標(biāo)簽app的name,即 labels下app: java 替換為app: lmss-system。

  3. 用于替換metadata的name,同理。

  4. 用于替換容器名稱,同理。

  5. 鏡像地址,同理。

  6. 用于聲明擴(kuò)展的自定義文件,圖中示例是用于修改環(huán)境變量的env.yml,存儲卷volume.yml。

綜上,在同一個(gè)項(xiàng)目,三種不同的環(huán)境下,1處,5處不同,env.yml和volume.yml內(nèi)容不同,2,3,4,6處配置可相同。

3.增加自定義配置(可選的)

自定義配置用于更新及增加base編排的配置,可以聲明獨(dú)立的yml文件,然后在上圖中第6處列出。自定義的yml需要配置metadata的name和containers的name,用以匹配并更新。在base編排中,metadata的name為java,第一個(gè)containers的name為java??梢园凑杖缦赂袷絹硖顚懽远x字段:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: java
spec:
  template:
    spec:
      # 自定義編排,如聲明存儲卷
      containers:
        - name: java
          # 自定義編排,如配置環(huán)境變量

4.生成最終的編排文件

使用kustomize build <path> 命令,生成最終編排文件。以下是按照上圖文件結(jié)構(gòu),生成lan環(huán)境下編排。

kustomize build lan

附錄:base編排的deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: java
  name: java
spec:
  selector:
    matchLabels:
      app: java
  template:
    metadata:
      labels:
        app: java
    spec:
      containers:
      - image: java
        name: java
        ports:
        - containerPort: 8080
          name: web
        - containerPort: 8081
          name: actuator
      imagePullSecrets:
        - name: docker-secret

到此,相信大家對“如何使用java kustomize”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI