ingress-nginx来做ingress的代理

举报
古冷 发表于 2019/01/27 20:22:27 2019/01/27
【摘要】 ingress-nginx来做ingress的代理

前段时间使用traefik来做ingress的反向代理,发现代理7层的https的时候还得把证书映射进去,要是不同的域名的https就不好搞了,要是通配符的域名还行,所以不得不代理改成nginx,之前ingress-nginx是之前支持4层的代理,但近期不支持4层的代理,只支持7层的,所以跟traefik代理是一样的了。



从github下载ingress-nginx的yaml文件
https://github.com/kubernetes/ingress-nginx/tree/master/deploywget  https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/baremetal/service-nodeport.yaml    
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml
image我是翻墙下载下来的
  
kubectl  apply  -f mandatory.yaml  -f  service-nodeport.yaml  
 #这里使用NodePort的原因是域名解析的时候可以写多个,算是高可用的了,也可以做轮询模式,或者是使用daemonSet的方式部署就ok!
 
 创建个测试的tls,域名为:gg.cdd.group
   openssl genrsa -out tls.key 2018
   openssl req -new -x509 -key tls.key -out tls.crt -subj /C=CN/ST=Beijing/O=DevOps/CN=gg.cdd.group
  
  在k8s里是使用secrt来把证书编码格式注入到pod的所以这里
  kubectl  create secret tls nginx-test --cert=tls.crt    --key=tls.key   #这里不要把名字用下横杠来连接(nginx_test),不然会报错!
  deployment的yaml:
vim test-deployment.yaml
  
apiVersion: v1
kind: Service
metadata:
  name: testspec:
  sessionAffinity: ClientIP
  sessionAffinityConfig:
    clientIP:
      timeoutSeconds: 10800
  clusterIP: None
  ports:
  - port: 80
    targetPort: 80
  selector:
    app: test---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
spec:
  tls:
  - hosts:
    - gg.cdd.group
    secretName: nginx-test
  rules:
  - host: gg.cdd.group
    http:
      paths:
      - path:
        backend:
          serviceName: test
          servicePort: 80
---
apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: testspec:
  minReadySeconds: 5
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  replicas: 3
  selector:
    matchLabels:
      app: test
  template:
    metadata:
      labels:
        app: test
    spec:
      containers:
      - image: nginx
        name: test
        readinessProbe:
          httpGet:
            port: 80
            path: /index.html
          initialDelaySeconds: 1
          periodSeconds: 2
        livenessProbe:
          exec:
            command:
              - cat
              - /usr/share/nginx/html/index.html
          initialDelaySeconds: 1
          periodSeconds: 2
        resources:
          requests:
            cpu: 50m
            memory: 200Mi
          limits:
            cpu: 500m
            memory: 500Mi
        env:
          - name: PROFILE
            value: "test"
        kubectl  apply  -f test-deployment.yaml


WX20190127-202030@2x.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。