You need to enable JavaScript to run this app.
导航

使用Helm在VKE中部署nginx-ingress

最近更新时间2024.01.09 10:16:05

首次发布时间2021.12.28 17:55:39

本文介绍使用Helm在VKE中部署nginx-ingress。

前言

本文档介绍如何使用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确定是否安装成功
alt

第三步、部署nginx ingress
  1. 增加ingress helm仓库
    使用helm repo add nginx-stable https://helm.nginx.com/stable添加
    alt
  2. 更新仓库
    使用helm repo update更新
    alt
  3. 查看nginx ingress版本信息
    使用helm search repo nginx-stable/nginx-ingress -l查看
    alt
  4. 安装ingress
    使用helm install nginx-ingress nginx-stable/nginx-ingress -n default安装,这里安装的是最近版本,如需安装指定版本添加参数--version即可
    alt
第四步、验证是否部署成功
  1. 查看helm chart状态
    使用helm list -n default查看
    alt
  2. 查看nginx-ingress pod状态
    使用kubectl get pod -n default|grep ingress查看
    alt
  3. 查看nginx-ingress deployment 状态
    使用kubectl get deployment -n default|grep ingress查看
    alt
  4. 查看nginx-ingress service状态
    使用kubectl get service -n default|grep ingress查看
    alt
第五步、部署tomcat验证nginx-ingress
  1. 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
    
  2. 部署tomcat deployment
    使用命令kubectl apply -f tomcat-deployment.yaml
    alt
  3. 查看tomcat deployment状态
    使用kubectl get deployment -n default | grep tomcat命令查看
    alt
  4. 查看tomcat pod状态
    使用kubectl get pod -n default | grep tomcat命令查看
    alt
  5. 编写测试页面
    创建ROOT目录
    kubectl exec -it -n default -- bash -c 'mkdir webapps/ROOT'
    alt
    创建index.html文件,并添加内容
    kubectl exec -it -n default -- bash -c 'echo "Hello Tomcat" > webapps/ROOT/index.html'
    alt
    查看测试页面是否创建成功
    kubectl exec -it -n default -- bash -c 'cat webapps/ROOT/index.html'
    alt
  6. 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
    
  7. 部署service
    使用命令kubectl apply -f tomcat-service.yaml部署
    alt
  8. 查看service状态
    使用kubectl get service -n default | grep tomcat命令查看
    alt
  9. 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
    
  10. 部署ingress
    使用kubectl apply -f tomcat-ingress.yaml命令部署
    alt
  11. 查看ingress
    使用命令kubectl get ingress -n default
    alt
  12. 验证
    访问域名,ingress中配置的域名
    说明:如无DNS解析,修改本地hosts文件,添加解析记录
    alt