前言
本文档介绍如何使用Helm在VKE群集中安装nginx-ingrss控制器并通过ingress代理tomcat服务。
关于实验
- 预计部署时间:30分钟
- 级别:初级
- 相关产品:VKE
- 受众: 通用
实验说明
如果还没有火山引擎账号,点击此链接注册账号 如果还没有VKE集群,参考此链接快速创建一个VKE
第一步、环境说明
- kubernetes版本:v1.20.6
- helm版本:v3.7.1
- nginx ingress chart版本:0.11.3
第二步 、部署Helm
如未安装helm命令,请参考helm官网 通过helm version确定是否安装成功
第三步、部署nginx ingress
- 增加ingress helm仓库 使用helm repo add nginx-stable https://helm.nginx.com/stable添加
- 更新仓库 使用helm repo update更新
- 查看nginx ingress版本信息 使用helm search repo nginx-stable/nginx-ingress -l查看
- 安装ingress 使用helm install nginx-ingress nginx-stable/nginx-ingress -n default安装,这里安装的是最近版本,如需安装指定版本添加参数--version即可
第四步、验证是否部署成功
- 查看helm chart状态 使用helm list -n default查看
- 查看nginx-ingress pod状态 使用kubectl get pod -n default|grep ingress查看
- 查看nginx-ingress deployment 状态 使用kubectl get deployment -n default|grep ingress查看
- 查看nginx-ingress service状态 使用kubectl get service -n default|grep ingress查看
第五步、部署tomcat验证nginx-ingress
- deployment yaml文件
apiVersion: apps/v1 kind: Deployment metadata: name: test-tomcat spec: selector: matchLabels: app: test-tomcat replicas: 1 template: metadata: labels: app: test-tomcat spec: containers: - name: my-tomcat image: tomcat ports: - containerPort: 8080
- 部署tomcat deployment 使用命令kubectl apply -f tomcat-deployment.yaml
- 查看tomcat deployment状态 使用kubectl get deployment -n default | grep tomcat命令查看
- 查看tomcat pod状态 使用kubectl get pod -n default | grep tomcat命令查看
- 编写测试页面 创建ROOT目录 kubectl exec -it -n default -- bash -c 'mkdir webapps/ROOT' 创建index.html文件,并添加内容 kubectl exec -it -n default -- bash -c 'echo "Hello Tomcat" > webapps/ROOT/index.html' 查看测试页面是否创建成功 kubectl exec -it -n default -- bash -c 'cat webapps/ROOT/index.html'
- service yaml文件
apiVersion: v1 kind: Service metadata: name: svc-tomcat spec: type: ClusterIP ports: - name: svc-port-tomcat port: 80 targetPort: 8080 selector: app: test-tomcat
- 部署service 使用命令kubectl apply -f tomcat-service.yaml部署
- 查看service状态 使用kubectl get service -n default | grep tomcat命令查看
- ingress yaml文件
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-tomcat namespace: default annotations: kubernetes.io/ingress.class: "nginx" spec: rules: - host: xxx.xxx.com http: paths: - pathType: Prefix path: "/" backend: service: name: svc-tomcat port: number: 80
- 部署ingress 使用kubectl apply -f tomcat-ingress.yaml命令部署
- 查看ingress 使用命令kubectl get ingress -n default
- 验证 访问域名,ingress中配置的域名 说明:如无DNS解析,修改本地hosts文件,添加解析记录