• 六. k8s--ingress学习笔记



    k8s七层代理实现方案

    • trafik
    • envoy
    • nginx

    ingress和service的区别与联系

    部署安装ingress-nginx

    部署ingress-Controller

    mkdir nginx-ingress
    cd nginx-ingress
    wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.25.1/deploy/static/mandatory.yaml
    kubectl apply -f mandatory.yaml
    kubectl get ns
    kubectl get pod -n ingress-nginx
    

    部署ingress-service(nodeport方式)

    wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/baremetal/service-nodeport.yaml
    
    cat service-nodeport.yaml
    apiVersion: v1
    kind: Service
    metadata:
      name: ingress-nginx
      namespace: ingress-nginx
      labels:
        app.kubernetes.io/name: ingress-nginx
        app.kubernetes.io/part-of: ingress-nginx
    spec:
      type: NodePort
      ports:
        - name: http
          port: 80
          targetPort: 80
          nodePort: 30080     #指定了nodeport, 好处便于记忆, 坏处可能会端口冲突
          protocol: TCP
        - name: https
          port: 443
          targetPort: 443
          nodePort: 30443     #指定了nodeport, 好处便于记忆, 坏处可能会端口冲突
          protocol: TCP
      selector:
        app.kubernetes.io/name: ingress-nginx
        app.kubernetes.io/part-of: ingress-nginx
    
    kubectl apply -f service-nodeport.yaml
    kubectl get pod -n ingress-nginx
    kubectl get svc -n ingress-nginx
    

    ingress实验

    一. myapp

    创建deployment以及对应的service

    apiVersion: v1
    kind: Service
    metadata:
        name: myapp
        namespace: default
    spec:
        selector:
            app: myapp
            release: canary
        ports:
        - name: http
          targetPort: 80
          port: 80
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
        name: myapp-deploy
        namespace: default
    spec:
        replicas: 2
        selector:
          matchLabels:
            app: myapp
            release: canary
        template:
          metadata:
            labels:
              app: myapp
              release: canary
          spec:
            containers:
            - name: myapp
              image: ikubernetes/myapp:v1
              ports:
              - name: http
                containerPort: 80
    

    创建对应service的ingress规则

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
        name: ingress-myapp
        namespace: default
        annotations:
            kubernetes.io/ingress.class: "nginx"
    spec:
        rules:
        - host: myapp.magedu.com
          http:
              paths:
              - path:
                backend:
                    serviceName: myapp
                    servicePort: 80
    

    二. tomcat

    拉取镜像

    docker pull tomcat:8.5.32-jre8-alpine
    

    创建deployment以及对应的service

    apiVersion: v1
    kind: Service
    metadata:
        name: tomcat
        namespace: default
    spec:
        selector:
            app: tomcat
            release: canary
        ports:
        - name: http
          targetPort: 8080
          port: 8080
        - name: ajp
          targetPort: 8009
          port: 8009
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
        name: tomcat-deploy
        namespace: default
    spec:
        replicas: 2
        selector:
          matchLabels:
            app: tomcat
            release: canary
        template:
          metadata:
            labels:
              app: tomcat
              release: canary
          spec:
            containers:
            - name: tomcat
              image: tomcat:8.5.32-jre8-alpine
              ports:
              - name: http
                containerPort: 8080
              - name: ajp
                containerPort: 8009
    

    创建对应service的ingress规则

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
        name: ingress-tomcat
        namespace: default
        annotations:
            kubernetes.io/ingress.class: "nginx"
    spec:
        rules:
        - host: tomcat.magedu.com
          http:
              paths:
              - path:
                backend:
                    serviceName: tomcat
                    servicePort: 8080
    

    https://zhuanlan.zhihu.com/p/62623207

  • 相关阅读:
    使用python3自带工具2to3.py 转换 python2.x 代码 到python3
    python2代码转换python3(2018新)
    解析搜狗词库(python)
    把搜狗输入法词库导入Google拼音输入法
    QT 窗体控件的透明度设置(三种方法)
    Telnet协议详解(远程登陆协议)
    C++游戏开发需要阅读的书籍
    explicit的作用
    C#7.0
    ES6-2
  • 原文地址:https://www.cnblogs.com/peitianwang/p/11475786.html
Copyright © 2020-2023  润新知