透過K8S Ingress 和 NodePort service直接連線Pod中的App

閱讀時間約 4 分鐘
上一篇介紹如何將Docker image部屬到Minikube,由於Pod 使用的是 K8S內部的 IP,無法從外部直接連線,所以是用minikube ssh來做測試,但是在真實環境中,總是要能有url可以直接連線到app,因此這邊可以使用k8s的Service。
建立一個監聽5001 port 的 NodePort Service hello-world,將連線導向pod的5000 port:
$ kubectl expose pod hello-world --port=5001 --target-port=5000 --type=NodePort
取得 service 的對外k8s node ip 和 port:
$ minikube service hello-world --url

#NodePort 模式下,Service 的port會對應到 k8s node上的port,所以只要得到k8s node的 IP 和port,就可以從node外部直接連線到 Service。

#Note:
刪除service:
$ kubectl delete svc hello-world

取得services:
$ kubectl get services
到這邊已經可以直接從外部ip連到k8s內部的app了,但是用ip來記是不是很不方便呢?
這邊可以使用k8s的ingress元件,先啟用:
$ minikube addons enable ingress

Ingress需要撰寫yaml檔來做設定,以 minikube 內建的 Nginx Ingress 為例,建立一個hello-world-ingress.yaml:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: vic-example
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
  - host: hello.world.minikube
    http:
      paths:
      - path: /(.*|$)
        backend:
          serviceName: hello-world
          servicePort: 5001

其中host是對外的domain name,有點類似在設定apache的server name,設定好申請的domain即可從外部直接連線過來。
serviceName跟servicePort則填寫上面建立好的Service。


建立一個名為vic-example的Ingress:
$ kubectl apply -f hello-world-ingress.yaml

查看Ingress:
$ kubectl get ingress
由於這只是範例,並不是真的有hello.world.minikube這個domain name,因此為了模擬測試,可以在/etc/hosts中加入host ip mapping:
$ sudo nano /etc/hosts
測試:
到這邊為止,就可以透過好記的url來連線到開發的app了呢!

#Note:
刪除Ingress:
$ kubectl delete ingress vic-example
為什麼會看到廣告
20會員
161內容數
留言0
查看全部
發表第一個留言支持創作者!
Vic Lin的沙龍 的其他內容
Simple Factory design pattern
閱讀時間約 1 分鐘
Factory design pattern
閱讀時間約 1 分鐘
Abstract Factory design pattern
閱讀時間約 1 分鐘
什麼是CI/CD?
閱讀時間約 2 分鐘
使用Minikube安裝Kubernetes
閱讀時間約 6 分鐘
將Docker image部屬到Minikube
閱讀時間約 5 分鐘
你可能也想看
創作者要怎麼好好休息 + 避免工作過量?《黑貓創作報#4》午安,最近累不累? 這篇不是虛假的關心。而是《黑貓創作報》發行以來可能最重要的一篇。 是的,我們這篇講怎麼補充能量,也就是怎麼休息。
Thumbnail
avatar
黑貓老師
2024-06-29
透過NLP技巧轉換情緒|負面情緒背後,竟然還有正向意圖?與情緒溫柔相處工作坊(二)這篇文章記錄「與情緒溫柔相處工作坊」中習得的轉化情緒方法。作者分享了自己的心得,並對情緒背後的正向意圖,結合個人情感與成長啟示,提出深度思考。並紀錄如何利用 NLP 基礎技巧來調整大腦裡的素材元素,以及如何運用逐步抽離法改善對負面情緒的影響。
Thumbnail
avatar
Ruima叡芮媽
2024-06-20
透過FREEDOM模型去思考,讓我們學習減壓、練習更專注於目標!(下)上一次我們談到了目標設定和人們對於執行力的選擇 今天我們則是要來聊聊,當你為自己設定了一個目標之後,可以透過什麼樣的方式去執行、面對壓力後該如何去思考學習、並且更專注於個人的目標上~     (圖片來源:https://www.dreamstime.com/freedom-word-writ
avatar
心月 ☾
2024-06-20
透過FREEDOM模型去思考,讓我們學習減壓、練習更專注於目標!(上)你的思想自由嗎?你的想法清晰嗎? 你的目標是什麼?你會為了達成目標做什麼樣的努力呢? 如果你是一個會為自己設定目標的人,那你是一個會努力達成自己計劃的人嗎?或是你發現自己時常會半途而廢呢? 我們的目標不應該只是一長串的待辦事項,而是讓生活上更有動力的來源。
avatar
心月 ☾
2024-06-19
透過專題式學習,才可讓孩子與學習保持真實的連結專題式學習是一種有益於幼兒成長的教學方式,通過引發問題、實際參與和統整學習內容,幫助孩子建立持久和有影響力的學習。本文探討了專題式學習的特點和如何幫助孩子進行問題驅動的學習。
Thumbnail
avatar
細讀慢品
2024-06-14
【透過書目卡精選想法,提升寫作效率的3個挑戰】手寫書目卡是一種獨特而有效的預寫作技巧,專為那些希望從閱讀中提煉和聚焦精華想法的作家和讀者設計。這種方法可以幫助你更高效率地選擇和整理從閱讀獲得的靈感。但是,這個過程也伴隨著一些挑戰。讓我們探索這些挑戰,並提出可能的解決方案。 挑戰1 - 選擇性記錄的難度:由於書目卡的空間有限,且手寫本身就是一項
avatar
王啟樺
2024-06-13
透過盲品認識 Syrah/Shiraz 和 Cabernet Sauvignon希哈這個葡萄品種有兩個英文名稱,而他的名稱也和釀出來的風格有關: Syrah 通常會是比較內斂的舊世界風格,通常比較爽口,帶有一些紅色莓果,草本的氣息,Shiraz 則是比較濃郁飽滿的新世界風格,以雄壯酒體,黑色莓果,果醬,黑胡椒的香氣為主。
Thumbnail
avatar
tengyuan
2022-07-02
透過盲品認識 Merlot 和 Pinot Noir 這兩個經典國際紅葡萄品種這篇文章則是要介紹兩個很常見的紅葡萄品種:Merlot (梅洛)以及 Pinot Noir (黑皮諾)。介紹他們的主要風格,以及在新舊世界國家會有的差異。 Merlot (梅洛) 典型的香氣和口感 不同產區之間的差異 以下也分別介紹 Merlot 在幾個主要產區的品種特色: 典型的香氣和口感
Thumbnail
avatar
tengyuan
2022-06-19
透過藝術傾聽內在聲音,鍾怜萱:「每個人都是獨一無二的個體。」「更重要的是知道自己在乎什麼、有哪些感受、要怎麼成為最自在的自己。」當問起為何聆聽內心如此重要時,她眼神堅定地回覆。她是鍾怜萱,曾參與TFT兩年教師計畫,也是「畫的室」共同創辦人。
Thumbnail
avatar
柯盈如
2022-06-08
透過打怪思維和寫輪眼,攻克高中數學吧!|課堂簡報、全息圖、知識圖卡、動態解題影片,一次做到,實現聰明努力如何有效練題?透過提問力和思考,把知識點背後的思考串連成線,就可看到此題的解題思路。大腦不喜歡你努力死記,它喜歡你邏輯串連。思考可視化的筆記,是一道題的解題筆記,也是卡片筆記,更是全息圖,也能是知識圖卡,最後更可以是動態解題影片。《光輝模板》實作紀錄。
Thumbnail
avatar
Lena Chen
2022-05-20
透過Keyboard Maestro, Alfred 以及Hook 有效串連Bookend 與DevonthinkBookend 其實也有提供URL scheme,但是我更常使用Devonthink的連結來處理檔案。因此有效的串連兩個資料庫,可以夠有效的利用文件。 過去如果我要在兩邊找一個文章,我需要用search的方式來尋找,不管是在Bookend或者Devonthink中搜尋,總是需要好幾個步驟。
Thumbnail
avatar
CQI365
2022-04-25