# 使用 helm 部署 Python 应用 回归下示例Python应用 cloud_native_hello_py 的目录结构: ```bash . ├── Dockerfile ├── README.md ├── k8s.deployment.yaml ├── k8s.service.yaml └── src ├── main.py └── requirements.txt ``` 我们使用 kubectl 命令部署过该 Python 服务,现在,我们用 helm 来部署。 首先,在项目命令下通过 helm 命令创建一个chart 配置文件夹 ```bash makedir chart cd chart helm create hello-py ``` 此时,目录结构如下: ```bash . ├── Dockerfile ├── README.md ├── chart │   └── hello-py │   ├── Chart.yaml │   ├── charts │   ├── templates │   │   ├── NOTES.txt │   │   ├── _helpers.tpl │   │   ├── deployment.yaml │   │   ├── hpa.yaml │   │   ├── ingress.yaml │   │   ├── service.yaml │   │   ├── serviceaccount.yaml │   │   └── tests │   │   └── test-connection.yaml │   └── values.yaml ├── k8s.deployment.yaml ├── k8s.service.yaml └── src ├── main.py └── requirements.txt ``` 其中: * Chart.yaml: 基本描述 * values.yaml: 配置镜像名称等 * charts: 用于存放依赖的其他 chart * templates: 用于存放需要的配置模板 修改 values.yaml: ```bash replicaCount: 1 image: image: fanfeilong/cloud_native_hello_py pullPolicy: IfNotPresent ``` 现在,使用 heml 安装 ```bash helm install ./chart/hello-py/ --generate-name ``` 检测下 k8s 的 deployment 和 sevice: ![](./img/status.png) 端口转发: ![](./img/port.png) 访问服务: ![](./img/visit.png) 以下说法错误的是? ## 答案 helm 部署的 k8s 应用没法通过 kubectl 管理 ## 选项 ### A helm 通过chart依赖来解决所部署的k8s应用之间的依赖 ### B helm 通过chart管理k8s应用部署的配置和模版 ### C helm 可以规范化k8s应用的配置和部署