使用阿里雲域名訪問自建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