1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

kustomize-kustomize安装和使用

介绍

本文将会介绍Kustomize是什么以及如何使用它来渲染Kubernetes资源文件。Kustomize是K8S-SIG开发的一个渲染K8S资源文件的工具,主要应用于多集群环境,避免配置不一致带来的麻烦。

kustomize-kustomize安装和使用

安装

使用以下命令可以在macOS上安装Kustomize:

brew install kustomize

如果需要手动安装,则可以使用以下命令:

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

同时,Kustomize也被集成在了kubectl中,可以直接使用kubectl kustomize来渲染Kubernetes资源文件。

使用

以下为使用Kustomize的步骤和实例:

创建Kustomize描述文件

首先,创建一个名为base的文件夹,并在该文件夹中创建一个名为kustomization.yaml的文件,并写入如下内容:

# 设置ns
namespace: test

resources:
  - deployment.yaml

# 生成config
configMapGenerator:
- name: example-configmap-1
  envs:
  - env.conf  
  literals:
  - FOO=Bar

# 生成secrets
secretGenerator:
- name: example-secret-2
  literals:
  - username=admin
  # 通过文件生成secret
  files:
  - passwd.conf
  
generatorOptions:
  # 只对生成的资源有效
  disableNameSuffixHash: true
  # 所有生成的资源都会有下面的标签
  labels:
    type: generated
  # 所有生成的资源都会有下面的注解
  annotations:
    note: generated

# 镜像替换
images:
  - name: nginx
    newName: nginx
    newTag: alpine

这里定义了所需生成的资源和镜像替换方式。

创建引用资源文件

接下来,在base文件夹中创建需要引用的资源文件,例如deployment.yaml。并在同级目录中创建.env文件,写入所需要的环境变量或配置信息。

需要注意的是,在Kustomize中,所有资源文件都由Kustomize生成。所以,这里的.env文件会被转换为Kubernetes资源文件。

编译执行

最后,使用kustomize build来生成Kubernetes资源文件。

kustomize build base

这样就可生成所需的Kubernetes资源文件。

用例

在实际应用中,通常一个服务在不同环境下会存在细微的差别。这时,可以用Kustomize在基本资源的基础上进行修改,例如在引用文件中添加所需的节点亲和关系和标签。

例如在测试环境中,需要给namespace加上dev等字段,以及添加节点亲和关系。可以使用以下命令来创建测试环境的Kustomize文件:

mkdir -p overlays/dev

在overlays/dev目录下创建相应的kustomization.yaml和引用资源文件即可。

使用kubectl apply -k可直接对Kustomize进行操作,例如:

kubectl apply -k overlays/dev

此时,即可在测试环境中使用所需的Kubernetes资源文件了。

结论

通过Kustomize,可以更加优雅地管理服务在各个资源的描述。同时,结合ArgoCD使用,可以让服务的部署更加舒适。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/7452.html