Helm スクリプトを作成する

1. スクリプトを作成する

Helm は、Kubernetes アプリケーションのデプロイメントと管理を簡素化および自動化するのに役立つ Kubernetes 用のパッケージ管理ツールです。Helm を使用すると、Kubernetes リソースと構成情報を含む Helm チャートと呼ばれるアプリケーション パッケージを作成および管理でき、さまざまな Kubernetes クラスターにアプリケーションをデプロイおよび管理できます。

Helm では、`helm create` コマンドを実行することで、新しい Helm チャートをすばやく作成できます。このコマンドは、初期 Helm Chart ディレクトリ構造を生成し、いくつかのサンプル ファイルを含むため、独自のアプリケーションの構築をすぐに開始できます。

以下は、`helm create` コマンドを使用して Helm チャート ファイルを最初に生成する手順です。

1. ターミナルまたはコマンドラインインターフェイスを開きます。
2. Helm チャートを作成するディレクトリを入力します (例: `cd /path/to/charts`)
3. `helm create` コマンドを実行し、チャートの名前を指定します (例: helm create Rabbitmq-)管理

上記のコマンドを実行すると、Helm は現在のディレクトリの下に「 rabbitmq-management」という名前のHelm Chart ディレクトリを作成し、次のファイルとディレクトリを生成します。

rabbitmq-management
├── Chart.yaml
├── charts
├── templates
│   ├── _helpers.tpl
│   ├── deployment.yaml
│   ├── service.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml

生成されたファイルの「templates」ディレクトリには、いくつかのサンプル テンプレート ファイルが含まれており、デプロイする Kubernetes リソースを定義するために、必要に応じてテンプレート ファイルを変更または追加できます。「values.yaml」ファイルにはいくつかのデフォルト設定値が含まれており、チャートのデフォルト設定を定義し、テンプレートでこれらの設定を使用できます。

最初の Helm チャート ファイルが生成されたら、必要に応じてチャートを編集およびカスタマイズし、`helm install` コマンドを使用してアプリケーションを Kubernetes クラスターにデプロイできます。

2. 文法のテスト

ヘルメットの糸くず 

helm lint ./rabbitmq-management
==> Linting ./rabbitmq-management
[INFO] Chart.yaml: icon is recommended

1 chart(s) linted, 0 chart(s) failed

 

3 番目に、スクリプトの内容を表示します

ヘルムテンプレート 

helm template rabbitmq-management ./rabbitmq-management

---
# Source: rabbitmq-management/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
  name: rabbitmq-management
  labels:
    dce.daocloud.io/app: rabbitmq-management
    helm.sh/chart: rabbitmq-management-0.1.0
    app.kubernetes.io/name: rabbitmq-management
    app.kubernetes.io/instance: rabbitmq-management
    app.kubernetes.io/version: "1.16.0"
    app.kubernetes.io/managed-by: Helm
spec:
  type: NodePort
  ports:
    - port: 5672
      targetPort: 5672
      protocol: TCP
      name: connection
    - port: 15672
      targetPort: 15672
      protocol: TCP
      name: management
  selector:
    app.kubernetes.io/name: rabbitmq-management
    app.kubernetes.io/instance: rabbitmq-management
---
# Source: rabbitmq-management/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: rabbitmq-management
  labels:
    dce.daocloud.io/app: rabbitmq-management
    dce.daocloud.io/component: rabbitmq-management
    helm.sh/chart: rabbitmq-management-0.1.0
    app.kubernetes.io/name: rabbitmq-management
    app.kubernetes.io/instance: rabbitmq-management
    app.kubernetes.io/version: "1.16.0"
    app.kubernetes.io/managed-by: Helm
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: rabbitmq-management
      app.kubernetes.io/instance: rabbitmq-management
  template:
    metadata:
      labels:
        dce.daocloud.io/app: rabbitmq-management
        dce.daocloud.io/component: rabbitmq-management
        app.kubernetes.io/name: rabbitmq-management
        app.kubernetes.io/instance: rabbitmq-management
    spec:
      securityContext:
        {}
      containers:
        - name: rabbitmq-management
          securityContext:
            {}
          image: "10.32.224.129/rabbitmq/rabbitmq:3.6.2-management"
          imagePullPolicy: IfNotPresent
          ports:
            - name: connection
              containerPort: 5672
              protocol: TCP
            - name: management
              containerPort: 15672
              protocol: TCP
          livenessProbe:
            tcpSocket:
              port: 5672
            initialDelaySeconds: 45
            timeoutSeconds: 1
            periodSeconds: 10
            successThreshold: 1
            failureThreshold: 3
          readinessProbe:
            tcpSocket:
              port: 5672
            initialDelaySeconds: 30
            timeoutSeconds: 1
            periodSeconds: 10
            successThreshold: 1
            failureThreshold: 9
          resources:
            limits:
              cpu: 1
              memory: 1Gi
            requests:
              cpu: 100m
              memory: 1Gi
---
# Source: rabbitmq-management/templates/tests/test-connection.yaml
apiVersion: v1
kind: Pod
metadata:
  name: "rabbitmq-management-test-connection"
  labels:
    helm.sh/chart: rabbitmq-management-0.1.0
    app.kubernetes.io/name: rabbitmq-management
    app.kubernetes.io/instance: rabbitmq-management
    app.kubernetes.io/version: "1.16.0"
    app.kubernetes.io/managed-by: Helm
  annotations:
    "helm.sh/hook": test
spec:
  containers:
    - name: wget
      image: busybox
      command: ['wget']
      args: ['rabbitmq-management:5672']
  restartPolicy: Never

 

おすすめ

転載: blog.csdn.net/summer_fish/article/details/132088463