zoukankan      html  css  js  c++  java
  • k8s的ingress使用

    ingress

      可以配置一个入口来提供k8s上service从外部来访问的url、负载平衡流量、终止SSL和提供基于名称的虚拟主机。

    配置ingress的yaml

      要求域名解析无误

      要求service对应的pod正常

    一、test1.domain.com   -->  service1:8080

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: test-ingress
      namespace: test
    spec:
      rules:
      - host: test1.domain.com
        http:
          paths:
          - backend:
              serviceName: service1
              servicePort: 8080
            path: /

     

    二、test1.domain.com   -->   /aaa   -->   service2:8080

                                             -->   /bbb   -->   service3:8080

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: test-ingress
      namespace: test
    spec:
      rules:
      - host: test1.domain.com
        http:
          paths:
          - backend:
              serviceName: service1
              servicePort: 8080
            path: /aaa
          - backend:
              serviceName: service2
              servicePort: 8080
            path: /bbb

    三、test1.domain.com   -->  service1:8080

      test2.domain.com   -->  service4:8080

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: test-ingress
      namespace: test
    spec:
      rules:
      - host: test1.domain.com
        http:
          paths:
          - backend:
              serviceName: service1
              servicePort: 8080
      - host: test2.domain.com
        http:
          paths:
          - backend:
              serviceName: service4
              servicePort: 8080

     

    四、test1.domain.com   -->  service1:8080

      没在request中定义主机名(即没有显示请求头)的请求   -->   service5:8080

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: test-ingress
      namespace: test
    spec:
      rules:
      - host: test1.domain.com
        http:
          paths:
          - backend:
              serviceName: service1
              servicePort: 8080
      - http:
          paths:
          - backend:
              serviceName: service5
              servicePort: 8080

    五、https://test1.domain.com   -->  service1:8080

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: test-ingress
      namespace: test
    spec:
      rules:
      - host: test1.domain.com
        http:
          paths:
          - backend:
              serviceName: service1
              servicePort: 8080
      tls:
      - hosts:
        - test1.domain.com
        secretName: domain-tls  #证书见下

      证书yaml

    apiVersion: v1
    data:
      tls.crt: cert(base64)  #转码见下
      tls.key: key(base64)
    kind: Secret
    metadata:
      name: domain-tls
      namespace: test
    type: kubernetes.io/tls

      base64转码

    cat fullchain.pem | base64 | tr '
    ' ' ' | sed s/[[:space:]]//g   #中间去掉换行和空格
    cat privkey.pem | base64 | tr '
    ' ' ' | sed s/[[:space:]]//g

    六、nginx中的设置,在ingress是通过annotations来配置的

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: test-ingress
      namespace: test
      annotations:
        nginx.ingress.kubernetes.io/proxy-connect-timeout: "600s"
        nginx.ingress.kubernetes.io/proxy-read-timeout: "600s"
        nginx.ingress.kubernetes.io/proxy-send-timeout: "600s"
    spec:
      rules:
      - host: test1.domain.com
        http:
          paths:
          - backend:
              serviceName: service1
              servicePort: 8080
            path: /

    详细ingress链接https://kubernetes.io/docs/concepts/services-networking/ingress/

    ingress中annotations的配置选项https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md

  • 相关阅读:
    [转] 《大腕》——编程高手篇
    [转] 如何用VB.Net创建一个三层的数据库应用程序
    [转] 张孝祥的java试题
    [转] 很久以前的一个sql面试题及答案.
    [转] C#编程实践
    [转] html技巧
    [转] 揭开SVCHOST.exe进程之谜
    [转] c#.net常用函数和方法集
    [转] Visual Studio.Net 快捷键表
    [转] left join/right join/inner join操作演示
  • 原文地址:https://www.cnblogs.com/chy-op/p/10566657.html
Copyright © 2011-2022 走看看