练习 - 安装 Helm 图表
使用 Helm 图表,你可以轻松地在 Kubernetes 群集上安装预先配置的云原生应用。
在本练习中,你将使用 Helm 在 Kubernetes 群集上安装宠物商店应用程序。
部署 Helm 图表
导航到 Azure Cloud Shell,并确保你位于 aks-store-demo 目录中。 否则,请使用
cd
更改到该目录。cd aks-store-demo
使用
cd
更改为 charts/aks-store-demo 目录。cd charts
使用
helm install
命令部署宠物店面 Helm 图表。helm install aks-store-demo ./aks-store-demo
此命令应返回与以下输出类似的结果:
NAME: aks-store-demo LAST DEPLOYED: Tue Feb 20 21:05:51 2024 NAMESPACE: default STATUS: deployed REVISION: 1 NOTES: 1. Get the application URL by running these commands: export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=aks-store-demo,app.kubernetes.io/instance=storedemo2" -o jsonpath="{.items[0].metadata.name}") export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") echo "Visit http://127.0.0.1:8080 to use your application" kubectl --namespace default port-forward $POD_NAME 8080:$CONTAINER_PORT
Helm 允许你查询群集上所有已安装的发布。 使用
helm list
命令列出所有 Helm 版本。helm list
此命令应返回与以下输出类似的结果:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION aks-store-demo default 1 2024-02-20 21:05:51.557392349 +0000 UTC deployed aks-store-demo-0.1.0 1.16.0
Helm 支持提取与每个版本相关的清单信息。 使用
helm get manifest
命令提取清单信息。helm get manifest aks-store-demo
此命令应返回与以下精简输出类似的结果:
--- # Source: aks-store-demo-chart/templates/order-service.yaml apiVersion: v1 kind: Secret metadata: name: order-service-secret ... --- # Source: aks-store-demo-chart/templates/rabbitmq.yaml apiVersion: v1 kind: Secret metadata: name: rabbitmq-secret ... --- # Source: aks-store-demo-chart/templates/order-service.yaml apiVersion: v1 kind: ConfigMap metadata: name: makeline-service-configmap ...
使用
kubectl get pods
命令验证是否已部署 Pod。kubectl get pods -o wide -w
此命令应返回与以下输出类似的结果:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES makeline-service-8747ddb89-j6mvz 1/1 Running 0 6m11s 10.244.2.7 aks-nodepool1-41853373-vmss000001 <none> <none> mongodb-0 1/1 Running 0 6m11s 10.244.2.3 aks-nodepool1-41853373-vmss000001 <none> <none> order-service-7854888498-mlsvv 1/1 Running 0 6m11s 10.244.2.8 aks-nodepool1-41853373-vmss000001 <none> <none> product-service-5d7d4f5c47-gr4sc 1/1 Running 0 6m11s 10.244.2.6 aks-nodepool1-41853373-vmss000001 <none> <none> rabbitmq-0 1/1 Running 0 6m11s 10.244.2.2 aks-nodepool1-41853373-vmss000001 <none> <none> store-admin-894788d77-k5qjw 1/1 Running 0 6m11s 10.244.2.10 aks-nodepool1-41853373-vmss000001 <none> <none> store-front-6749d8579c-xdkv8 1/1 Running 0 6m11s 10.244.2.4 aks-nodepool1-41853373-vmss000001 <none> <none> virtual-customer-76c4bb9b7-dq6lc 1/1 Running 0 6m11s 10.244.2.9 aks-nodepool1-41853373-vmss000001 <none> <none> virtual-worker-56b79f9547-9dkm9 1/1 Running 0 6m11s 10.244.2.5 aks-nodepool1-41853373-vmss000001 <none> <none>
完成后,使用
Ctrl+C
退出命令。
删除 Helm 发布
使用
helm delete
命令删除 Helm 版本。helm delete aks-store-demo
此命令应返回与以下输出类似的结果:
release "aks-store-demo" uninstalled
使用设置的值安装 Helm 图表
可以通过传递值参数或自己的 values.yaml
文件来替代 Helm 图表的值。 现在,使用以下命令了解如何使用 --set
参数来更新值。 在下一单元中,你将了解如何使用 values.yaml
文件。
使用
helm install
命令和--set
参数安装 Helm 图表,以将部署模板的replicaCount
设置为五个副本。helm install --set replicaCount=5 aks-store-demo ./aks-store-demo
使用
kubectl get pods
命令验证是否已部署五个 Pod 副本。kubectl get pods -o wide -w
此命令应返回与以下输出类似的结果:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES aks-store-demo-c8dfddf78-2v8fv 1/1 Running 0 31s 10.244.1.5 aks-nodepool1-41853373-vmss000000 <none> <none> aks-store-demo-c8dfddf78-8t4rq 1/1 Running 0 31s 10.244.2.16 aks-nodepool1-41853373-vmss000001 <none> <none> aks-store-demo-c8dfddf78-h2p8m 1/1 Running 0 31s 10.244.2.15 aks-nodepool1-41853373-vmss000001 <none> <none> aks-store-demo-c8dfddf78-l8qq2 1/1 Running 0 31s 10.244.0.10 aks-nodepool1-41853373-vmss000002 <none> <none> aks-store-demo-c8dfddf78-xwcpw 1/1 Running 0 31s 10.244.0.9 aks-nodepool1-41853373-vmss000002 <none> <none>
完成后,使用
Ctrl+C
退出命令。使用
helm delete
命令删除 Helm 图表。helm delete aks-store-demo