[K8S系列五]Ingress与Ingress Controller

前一篇文章 [K8S系列四] K8S核心组件与核心概念(Pod、Deployment、Service) 中提到了NodePort类型Service,但是NodePort类型Service有如下缺点:
1.一个端口只能一个服务使用,根据端口划分服务,需要提前规划好(可用端口范围:30000~32767)
2.只支持4层负载均衡设备(Service基于IPTABLE实现),不能实现7层的负载。7层与4层简单理解就是7层最常见就是应用层的http,也就是url;4层是传输层,为tcp/udp端口。

Ingress 是自kubernetes1.1版本后引入的资源类型,在这个资源中我们可以去配置我们的服务路由规则,但是要真正去实现识别这个 Ingress 并提供代理路由功能,还需要安装一个对应的控制器Ingress controller才能实现。
Ingress controller 是以一种插件的形式提供,有多种实现,例如官方维护的 Ingress NGINX 。Ingress controller 是部署在Kubernetes之上的Docker容器。它的Docker镜像包含一个像Nginx或HAProxy的负载均衡器和一个控制器守护进程。控制器守护程序从Kubernetes接收所需的Ingress配置。它会生成一个Nginx或HAProxy配置文件,并重新启动负载平衡器进程以使更改生效。换句话说,Ingress controller是由Kubernetes管理的负载均衡器。

如果是在公有云上安装Ingress Nginx,可以根据 Installation Guide 选择合适的安装方式。公有云有完善的网络负载均衡,类型可以选择 LoadBalancer 。
但这里是通过kubeadm自行搭建的K8S集群,所以选择 Bare-Metal 方式。类型为NodePort,在集群上开一个端口(范围为:30000-32767),用于简单测试。

需要注意从1.16开始,部分api发生变化,所以请根具体使用的版本,调整配置。具体请参考根据 Deprecated APIs Removed In 1.16: Here’s What You Need To Know 。
这里配置域名为foo.mydomain.com,代理的两个Service为nginx-clusterip和whoami-cluster。nginx-clusterip和whoami-cluster的yaml配置请参考附录1和2

在集群外服务器的 /etc/hosts 中增加一条记录 192.168.0.61 foo.mydomain.com 。
分别访问 foo.mydomain.com:30434 和 foo.mydomain.com:30434/whoami ,可以看到nginx-clusterip和whoami-clusterip的返回结果。



  • K8s 閮ㄧ讲 Spring boot 瀹炶返搴旂敤鎸囧崡
    绛旓細瀵k8s鐭ヨ瘑鏈変竴瀹氫簡瑙f帉鎻★紝鑳藉鏄庣櫧Pod銆丏eployment銆丼ervice銆Ingress 鍏蜂綋姒傚康 鍑嗗涓濂楀彲鐢ㄧ殑k8s鐜 鍑嗗涓涓儴缃茬殑spring boot 搴旂敤 k8s鏈灏忓崟鍏冩槸Pod, 鑰孭od 鏄竴缁勮繍琛岀殑瀹瑰櫒锛岄偅涔堝鍣ㄦ槸鎬庝箞杩愯璧锋潵鐨勫憿 锛 灏辨槸閫氳繃鏋勫缓鐨勯暅鍍忋傦紙鐩墠鎴戜滑浣跨敤鐨勫鍣ㄦ妧鏈兘鏄熀浜巇ocker锛夐偅鍏堣鎴戜滑鏉ヤ竴...
  • K8s鏆撮湶鍐呴儴鏈嶅姟鐨勫绉嶆柟寮
    绛旓細閫氳繃Service鏆撮湶鍐呴儴鏈嶅姟鐨勬柟寮忔湁鍥涚锛欳lusterIP銆丯odePort銆丩oadBalancer銆Ingress ClusterIP鍏跺疄鏄疭ervice鐨勭己鐪佺被鍨嬶紝灏辨槸榛樿绫诲瀷锛屼緥濡備箣鍓嶉儴缃茬殑dashboard鎻掍欢鍏跺疄灏变娇鐢ㄦ槸杩欑绫诲瀷锛屽彲浠ラ氳繃濡備笅鎸囦护鏉ュ垎杈細鎵浠ワ紝杩欑绫诲瀷鐨凷ervice鏈韩鏄笉浼氬闆嗙兢澶栨毚闇叉湇鍔$殑锛屼絾鏄嵈鍗曞崟鍙互閫氳繃K8s Proxy API鏉ヨ闂
  • Ingress 瀹氬埗閰嶇疆
    绛旓細鍘熸枃鍦板潃锛 https://alphahinex.github.io/2021/08/01/customize-ingress/ description: "鏈澶у寲 Ingress 浠峰" date: 2021.08.01 10:34 categories: - K8s tags: [K8s, Nginx] keywords: K8s, Ingress, Ingress Controller, ingress-nginx, KIC, Kong Ingress Controller K8s ...
  • k8s涔嬪鍣ㄨ縼绉 [jenkins涓轰緥]
    绛旓細涓銆佹暟鎹浠 1.鎵惧埌闇瑕佽縼绉荤殑瀹瑰櫒鍚嶇О 2.鎵惧埌杩佺Щ瀹瑰櫒鐨勬暟鎹洰褰 浜屻佷慨鏀箉aml閰嶇疆鏂囦欢 3.svc.yaml 涓昏淇敼鐐癸細namespace 4.ingress 鐨勪慨鏀圭偣锛歯amespace銆乭ost 涓夈佸垱寤轰竴涓柊鐨勫鍣 1.鍒涘缓骞舵煡鐪嬬姸鎬 鍥涖佺櫥褰曞埌瀹瑰櫒涓竻绌烘暟鎹枃浠 浜斻佹嫹璐濆浠界殑鏁版嵁鏂囦欢鍒板鍣ㄤ腑 鍏侀噸鍚鍣 涓冦佹牴鎹疄闄...
  • ingress 涓嶄娇鐢ㄥ煙鍚
    绛旓細棰樹富鏄惁鎯宠闂ingress涓嶄娇鐢ㄥ煙鍚嶅悧鈥濓紵浣跨敤銆1銆Ingress鏈韩灏辨槸鐢ㄤ簬瀹炵幇鐢ㄥ煙鍚嶇殑鏂瑰紡璁块棶k8s闆嗙兢鐨勫唴閮ㄥ簲鐢紝鎵浠ヤ笉鑳戒笉浣跨敤鍩熷悕銆2銆佽屼笖鎴2022骞6鏈8鏃ワ紝鍦ㄧ綉缁滀笂杩樻病鏈夊叧浜嶪ngress涓嶇敤鍩熷悕鐨勭浉鍏虫秷鎭
  • Kubernetes Service鍘熺悊瑙f瀽
    绛旓細Ingress 鍏跺疄涓嶆槸Service鐨勪竴涓被鍨嬶紝浣嗘槸瀹冨彲浠ヤ綔鐢ㄤ簬澶氫釜Service锛屼綔涓洪泦缇ゅ唴閮ㄦ湇鍔$殑鍏ュ彛銆侷ngress 鑳藉仛璁稿涓嶅悓鐨勪簨锛屾瘮濡傛牴鎹笉鍚岀殑璺敱锛屽皢璇锋眰杞彂鍒颁笉鍚岀殑Service涓婄瓑绛夈傝櫧鐒禨ervice瑙e喅浜哖od鐨勬湇鍔″彂鐜伴棶棰橈紝浣嗕笉鎻愬墠鐭ラ亾Service鐨処P锛屾庝箞鍙戠幇service鏈嶅姟鍛紵k8s鎻愪緵浜嗕袱绉嶆柟寮忚繘琛屾湇鍔″彂鐜帮細endpoint鏄...
  • Ingress-nginx鏃ュ織鍒囧壊涓庤疆寰柟妗
    绛旓細鍦ingress搴旂敤鐨剏aml鏂囦欢閲岋紝妞嶅叆涓涓柊鐨刢ontainer鍗冲彲銆傚洓锛岄獙璇 kubectl logs -f pod鍙互鐪嬪埌crontab杈撳嚭 浜旓紝 logrotate鍜宑rontab鑱斿姩缁嗚妭鎯冲儚 start.sh涓啓鍏/etc/crontabs/root鏂囦欢涓殑鏁版嵁锛0 */2 * * * /usr/sbin/logrotate -v /etc/logrotate.conf 琛ㄧずlogrotae鍛戒护姣2灏忔椂鎵ц涓娆★紝瀹...
  • apisix鍦k8s涓婄殑瀹炶返
    绛旓細鎻愬墠瀹夎helm 娉ㄦ剰锛氶渶瑕佸charts鍋氶傚綋淇敼 瀹夎瀹屾垚鍚庯紝浼氬彂鐜癮pisix-ingress-controller-6697f4849d-wdrr5杩欎釜pod涓鐩村浜巌nit鐨勭姸鎬侊紝鍙互鍦 https://github.com/apache/apisix-helm-chart/issues 涓繘琛屾悳绱 https://github.com/apache/apisix-helm-chart/pull/284 锛屼篃鍙互閫氳繃鏌ョ湅pod鏃ュ織杩涜瑙e喅锛...
  • k8鏄粈涔堟剰鎬,k8浠涔堟剰鎬
    绛旓細Kubernetes锛堢畝绉K8s锛夋槸涓涓紑婧愮殑瀹瑰櫒缂栨帓绯荤粺锛屽畠鐢ㄤ簬鑷姩鍖栭儴缃层佹墿灞曞拰绠$悊瀹瑰櫒鍖栧簲鐢ㄧ▼搴忋侹8s鎻愪緵浜嗕竴绉嶆娊璞″眰锛屼娇寰楀紑鍙戜汉鍛樿兘澶熶笓娉ㄤ簬搴旂敤绋嬪簭鐨勪唬鐮侊紝鑰屼笉鐢ㄥ叧蹇冨簳灞傜殑瀹瑰櫒鍖栧熀纭璁炬柦銆侹8s鐨勬牳蹇冩蹇靛寘鎷琍od銆丼ervice銆丏eployment銆Ingress绛夈侾od鏄疜8s涓彲浠ュ垱寤哄拰绠$悊鐨勬渶灏忛儴缃插崟鍏冿紝瀹冨寘鍚竴涓垨...
  • 濡備綍鍏ラ棬k8s?
    绛旓細閮ㄧ讲 (Deployment)琛ㄧず瀵k8s闆嗙兢鐨勪竴娆℃洿鏂版搷浣滐紝鏄痥8s闆嗙兢涓渶甯哥敤鐨凮bject锛屼富瑕佺敤浜庨儴缃插簲鐢ㄣ傛敮鎸佹粴鍔ㄥ崌绾с傛湇鍔 (service)鏄搴旂敤鐨勬娊璞★紝涔熸槸k8s涓殑鍩烘湰鎿嶄綔鍗曞厓锛屼竴涓湇鍔¤儗鍚庣敱澶氫釜pod鏀寔锛屾湇鍔¢氳繃璐熻浇鍧囪 绛栫暐灏嗚姹傝浆鍙戝埌瀹瑰櫒涓Ingress鏄竴绉嶇綉鍏虫湇鍔★紝鍙互灏唊8s鏈嶅姟閫氳繃http鍗忚鏆撮湶鍒板閮ㄣ傛棤...
  • 扩展阅读:www.sony.com.cn ... e人e本t8s和k8s ... mac蜜桃奶茶314 ... k 8线经典理论 ... k8手机经典网 ... 老版k8最新经典版 ... k8s ingress controller ... 最新k8s经典 ... 经典k8视频 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网