• k8s--基础--29.3--ingress--案例


    k8s–基础–29.3–ingress–案例


    1、测试代理–tomcat服务

    1.1、部署后端服务

    1.1.1、脚本

     
    vi   /root/ingress/tomcat/tomcat-demo.yaml
    
    • 1
    • 2

    内容

    apiVersion: v1
    kind: Service
    metadata:
      # service名称
      name: tomcat
      # 名称空间
      namespace: default
    spec:
      # pod的标签
      selector:
        app: tomcat
        release: canary
      # 定义端口
      ports:
      - name: http-port
        targetPort: 8080
        port: 8080
      - name: ajp-port
        targetPort: 8009
        port: 8009
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      # Deployment名称
      name: tomcat-deploy
      # 名称空间
      namespace: default
    spec:
      # 定义3个副本
      replicas: 3
      # 定义选择哪个template
      selector:
        matchLabels:
          app: tomcat
          release: canary
      # 定义模板
      template:
        metadata:
          # 定义标签
          labels:
            app: tomcat
            release: canary
        spec:
          # 定义容器
          containers:
          - name: tomcat
            image: tomcat:8.5.34-jre8-alpine   
            # 镜像拉取策略,本地有则使用本地镜像,不拉取
            imagePullPolicy: IfNotPresent 
            ports:
            - name: http-port
              containerPort: 8080
              name: ajp-port
              containerPort: 8009
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55

    1.1.2、执行

    kubectl apply -f  /root/ingress/tomcat/tomcat-demo.yaml
    
    # 查看
    kubectl get svc 
    kubectl get pods 
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    1.2、部署ingress

    1.2.1、脚本

    vi   /root/ingress/tomcat/ingress-tomcat.yaml
    
    • 1

    内容

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: tomcat
      namespace: default
      annotations:
    	# # 注解信息,这里配置的是nginx类型的ingress
        kubernetes.io/ingress.class: "nginx"
    spec:
      rules:
      #主机域名
      - host: tomcat.feizhou.com    
        http:
          paths:
          - path:
            backend:
              # tomcat.feizhou.com  路由到 名称为tomcat的service
              serviceName: tomcat
              servicePort: 8080
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    1.2.2、执行

    kubectl apply -f /root/ingress/tomcat/ingress-tomcat.yaml
    
    # 查看
    kubectl get Ingress 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    1.2.3、修改本地host文件

    下面的ip是k8s的master节点ip

    192.168.187.154  tomcat.feizhou.com
    
    • 1

    1.2.4、浏览器访问

    tomcat.feizhou.com:30080
    
    • 1

    在这里插入图片描述

    2、构建TLS站点

    我这里是基于 上面的 测试代理–tomcat服务,做TLS站点

    2.1、操作前,验证

    https://tomcat.feizhou.com:30443/
    
    • 1

    在这里插入图片描述

    我们发现,请求https,是走默认的后端服务,

    2.2、准备证书

    在k8s的master节点操作

    cd /root/ingress/tomcat
    
    openssl genrsa -out tls.key 2048  
    
    openssl req -new -x509 -key tls.key -out tls.crt -subj /C=CN/ST=Beijing/L=Beijing/O=DevOps/CN=tomcat.feizhou.com
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.2、生成secret

    在k8s的master节点操作

    kubectl create secret tls tomcat-ingress-secret --cert=tls.crt --key=tls.key
    
    
    • 1
    • 2

    2.3、查看secret

    # 查看
    kubectl get secret
    # 查看详细信息
    kubectl describe secret tomcat-ingress-secret
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    2.6、创建ingress

    2.6.1、脚本

     
    vi   /root/ingress/tomcat/ingress-tomcat-tls.yaml
    
    • 1
    • 2

    内容

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: ingress-tomcat-tls
      namespace: default
      annotations:
        # 注解信息,这里配置的是nginx类型的ingress
        kubernetes.io/ingress.class: "nginx"
    spec:
      tls:
      - hosts:
        - tomcat.feizhou.com
        secretName: tomcat-ingress-secret
      rules:
      - host: tomcat.feizhou.com
        http:
          paths:
          - path:
            backend:
              # tomcat.feizhou.com  路由到 名称为tomcat的service
              serviceName: tomcat
              servicePort: 8080
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    2.6.2、执行

    # 执行
    kubectl apply -f /root/ingress/tomcat/ingress-tomcat-tls.yaml
    # 查看
    kubectl get Ingress 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    2.7、访问测试:

    https://tomcat.feizhou.com:30443/
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    Qlik部署动态经营分析,实时帮助企业掌控盈利能力
    代码随想录39——动态规划:62不同路径、63不同路径II
    Python学习笔记——逻辑判断和循环
    ESPRIT 2019初学到走心机编程视频教程
    人类细胞丨ProSci 4-1BB 配体重组蛋白方案
    打造无证服务化:这个政务服务平台有点不一样
    LeetCode精讲(1)—— 单调栈有关习题及其变式
    浅谈spring的@Scheduled定时任务(演示)
    2023年中国泌尿内窥镜市场规模、竞争格局及细分产品规模分析[图]
    解决npm-v显示空白的问题
  • 原文地址:https://blog.csdn.net/zhou920786312/article/details/126246662