使用阿里云域名访问自建k8s内部服务


实现效果: 使用阿里云域名访问k8s内部服务 k8s集群是自建在阿里云ecs服务器上的
条件:
1.拥有阿里云域名以及至少一台ecs服务器
2.k8s集群部署完成
3.nginx-ingress、default-http-backend组件已安装
4.jenkins的服务以及svc已经部署好

例子: 使用阿里云域名访问k8s内部部署的jenkins服务

1.添加三级域名并解析到k8s集群任意一台服务器上

主机记录: jenkins
主机类型: A
记录值: 服务器ip地址

2.申请刚才添加域名的https证书 阿里云可以免费申请20个 如果不会申请 可以自行百度

3.创建tls

将https证书下载到本地 再上传到master服务器上并解压 解压出来一般会有两个文件pem跟key 然后执行命令kubectl create secret tls jenkins-ssl --key ./jenkins.test.cn.key --cert ./jenkins.test.cn.pem -n kube-ops

意思是在namespace为kube-ops的命名空间下创建了一个名为jenkins-ssl的secret

4.创建ingress规则

需要注意的就是jenkins的svc需要跟创建的ingress处于同一个命名空间下

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
   name: jenkins
   namespace: kube-ops
   annotations:
#进行说明我们接下来要用到的规则是nginx,就是靠annotations来识别类型的,只有进行注解了才能转化为对应的与controller相匹配的规则
     kubernetes.io/ingress.class: "nginx"
     nginx.ingress.kubernetes.io/ssl-redirect: 'true' #http 自动转https
     nginx.ingress.kubernetes.io/proxy-connect-timeout: "600" #修改代理超时时间,默认是60s
     nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
     nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
spec:
    rules:
    - host: jenkins.test.cn
      http:
        paths:
        - path: /
          backend:
           serviceName: jenkins-svc
           servicePort: 8080
    tls:
    - hosts:
      - jenkins.test.cn
      secretName: jenkins-ssl

5.测试访问

在浏览器输入ingress配置的域名 jenkins.test.cn 即可访问到k8s集群内布的jenkins服务!!!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM