摘要:前言有種方法可以讓集群外訪問(wèn)運(yùn)行在集群上的應(yīng)用程序。當(dāng)群集上運(yùn)行的應(yīng)用程序數(shù)量增加時(shí),這可能會(huì)導(dǎo)致端口沖突。由于這些原因,主機(jī)網(wǎng)絡(luò)不是使您的應(yīng)用程序可以從群集外部訪問(wèn)的好方法。例如,可以將網(wǎng)絡(luò)插件部署為在集群的所有節(jié)點(diǎn)上設(shè)置的守護(hù)進(jìn)程。
前言
有5種方法可以讓集群外訪問(wèn)運(yùn)行在Kubernetes集群上的應(yīng)用程序(pod)。接下來(lái)我們?cè)敿?xì)討論Kubernetes的hostNetwork,hostPort,NodePort,LoadBalancer和Ingress功能。本章內(nèi)容主要解讀一下hostNetwork。
hostNetwork設(shè)置適用于Kubernetes pod。當(dāng)pod配置為hostNetwork:true時(shí),在此類(lèi)pod中運(yùn)行的應(yīng)用程序可以直接查看啟動(dòng)pod的主機(jī)的網(wǎng)絡(luò)接口。配置為偵聽(tīng)所有網(wǎng)絡(luò)接口的應(yīng)用程序,又可以在主機(jī)的所有網(wǎng)絡(luò)接口上訪問(wèn)。以下是使用主機(jī)網(wǎng)絡(luò)的pod的示例定義:
apiVersion: v1 kind: Pod metadata: name: influxdb spec: hostNetwork: true containers: - name: influxdb image: influxdb
您可以使用以下命令啟動(dòng)pod:
$ kubectl create -f influxdb-hostnetwork.yml
您可以檢查InfluxDB應(yīng)用程序是否正在運(yùn)行:
$ curl -v http://kubenode01.example.com:8086/ping剖析
當(dāng)pod 設(shè)置hostNetwork: true時(shí)候,Pod中的所有容器就直接暴露在宿主機(jī)的網(wǎng)絡(luò)環(huán)境中,這時(shí)候,Pod的PodIP就是其所在Node的IP。
對(duì)于同Deployment下的hostNetwork: true啟動(dòng)的Pod,每個(gè)node上只能啟動(dòng)一個(gè)。也就是說(shuō),Host模式的Pod啟動(dòng)副本數(shù)不可以多于“目標(biāo)node”的數(shù)量,“目標(biāo)node”指的是在啟動(dòng)Pod時(shí)選定的node,若未選定(沒(méi)有指定nodeSelector),“目標(biāo)node”的數(shù)量就是集群中全部的可用的node的數(shù)量。當(dāng)副本數(shù)大于“目標(biāo)node”的數(shù)量時(shí),多出來(lái)的Pod會(huì)一直處于Pending狀態(tài),因?yàn)閟chedule已經(jīng)找不到可以調(diào)度的node了。
以下示例中,集群只有4個(gè)node,當(dāng)設(shè)置副本數(shù)量為5時(shí),最后一個(gè)Pod狀態(tài)會(huì)一直處于Pending狀態(tài)。
root@k8s-master yaml]# kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE test-host-1108333573-11wbl 1/1 Running 0 17s 10.0.251.153 k8s-node-1 test-host-1108333573-2k35s 1/1 Running 0 17s 10.0.251.146 k8s-node-3 test-host-1108333573-lnlpy 1/1 Running 0 17s 10.0.251.222 k8s-node-4 test-host-1108333573-t6izr 1/1 Running 0 17s 10.0.251.155 k8s-node-2 test-host-1108333573-tf4mc 0/1 Pending 0 17s
當(dāng)多個(gè)host模式deployment的端口沖突的時(shí)候,最后啟動(dòng)的那些Pod就會(huì)一直處于Pending狀態(tài)。
PS請(qǐng)注意,每次重新啟動(dòng)pod時(shí),Kubernetes都可能將pod重新安排到其他節(jié)點(diǎn)上,因此應(yīng)用程序的IP地址將更改。除此之外,需要相同端口的兩個(gè)應(yīng)用程序不能在同一節(jié)點(diǎn)上運(yùn)行。當(dāng)群集上運(yùn)行的應(yīng)用程序數(shù)量增加時(shí),這可能會(huì)導(dǎo)致端口沖突。由于這些原因,主機(jī)網(wǎng)絡(luò)不是使您的應(yīng)用程序可以從群集外部訪問(wèn)的好方法。
主機(jī)網(wǎng)絡(luò)在那些方面有用那?對(duì)于需要直接訪問(wèn)主機(jī)網(wǎng)絡(luò)的情況。例如,可以將Kubernetes網(wǎng)絡(luò)插件Flannel部署為在Kubernetes集群的所有節(jié)點(diǎn)上設(shè)置的守護(hù)進(jìn)程。由于hostNetwork:true,F(xiàn)lannel完全控制集群中每個(gè)節(jié)點(diǎn)上的網(wǎng)絡(luò),允許它管理與hostNetwork:false的pod連接到的覆蓋網(wǎng)絡(luò)。
因?yàn)槊總€(gè)node上只能啟動(dòng)一個(gè)同deployment的pod,通過(guò)該特性,在某種程度上可以實(shí)現(xiàn)同一應(yīng)用的pod不部署在同一臺(tái)主機(jī)的需求。但是我更傾向于使用之前文章介紹過(guò)的pod的反親和性來(lái)解決。
參考文章:Accessing Kubernetes Pods from Outside of the Cluster
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/32696.html
摘要:前言有種方法可以讓集群外訪問(wèn)運(yùn)行在集群上的應(yīng)用程序。當(dāng)群集上運(yùn)行的應(yīng)用程序數(shù)量增加時(shí),這可能會(huì)導(dǎo)致端口沖突。由于這些原因,主機(jī)網(wǎng)絡(luò)不是使您的應(yīng)用程序可以從群集外部訪問(wèn)的好方法。例如,可以將網(wǎng)絡(luò)插件部署為在集群的所有節(jié)點(diǎn)上設(shè)置的守護(hù)進(jìn)程。 前言 有5種方法可以讓集群外訪問(wèn)運(yùn)行在Kubernetes集群上的應(yīng)用程序(pod)。接下來(lái)我們?cè)敿?xì)討論Kubernetes的hostNetwork,...
摘要:云廠商托管服務(wù)的域名解析注意事項(xiàng)使用云廠家提供托管式,的域名解析參數(shù),通過(guò)界面創(chuàng)建的話,可能廠商界面沒(méi)有開(kāi)放配置,采用了一些默認(rèn)值,在使用時(shí)候,需要了解清楚廠商提供的默認(rèn)配置,否則會(huì)存在問(wèn)題。原文鏈接使用云廠商托管時(shí)容器域名解析注意事項(xiàng) 云廠商托管 Kubernetes 服務(wù)的 Pod 域名解析注意事項(xiàng) 使用云廠家提供托管式Kubernetes,Pod的域名解析參數(shù),通過(guò)界面創(chuàng)建Pod...
摘要:廣告各版本離線安裝包證書(shū)配置生產(chǎn)環(huán)境中給配置證書(shū)相當(dāng)重要,如果沒(méi)有證書(shū),那么集群很容易被黑客利用而去挖礦什么的。細(xì)節(jié)問(wèn)題非常多,一個(gè)端口,一個(gè)都不要填錯(cuò),否則就會(huì)各種錯(cuò)誤包括新加節(jié)點(diǎn)要清數(shù)據(jù)這些小細(xì)節(jié)問(wèn)題。 廣告 | kubernetes各版本離線安裝包 etcd 證書(shū)配置 生產(chǎn)環(huán)境中給etcd配置證書(shū)相當(dāng)重要,如果沒(méi)有證書(shū),那么k8s集群很容易被黑客利用而去挖礦什么的。做法非常簡(jiǎn)單...
摘要:廣告各版本離線安裝包證書(shū)配置生產(chǎn)環(huán)境中給配置證書(shū)相當(dāng)重要,如果沒(méi)有證書(shū),那么集群很容易被黑客利用而去挖礦什么的。細(xì)節(jié)問(wèn)題非常多,一個(gè)端口,一個(gè)都不要填錯(cuò),否則就會(huì)各種錯(cuò)誤包括新加節(jié)點(diǎn)要清數(shù)據(jù)這些小細(xì)節(jié)問(wèn)題。 廣告 | kubernetes各版本離線安裝包 etcd 證書(shū)配置 生產(chǎn)環(huán)境中給etcd配置證書(shū)相當(dāng)重要,如果沒(méi)有證書(shū),那么k8s集群很容易被黑客利用而去挖礦什么的。做法非常簡(jiǎn)單...
摘要:慶幸,引入了這個(gè)抽象的概念。會(huì)虛擬出一個(gè),并在它銷(xiāo)毀之前保持該地址保持不變。通過(guò)對(duì)它的訪問(wèn),以代理的方式負(fù)載到對(duì)應(yīng)的上,同時(shí)生命周期的變換,也會(huì)及時(shí)反應(yīng)在代理上。該與同名,它所暴露的地址信息正是對(duì)應(yīng)的地址。由此猜測(cè)是維護(hù)了與的映射關(guān)系。 帶著問(wèn)題學(xué) Kubernetes 抽象對(duì)象 Service 摘要:本文屬于原創(chuàng),歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)保留出處:https://github.com/jas...
閱讀 2265·2021-09-27 13:35
閱讀 561·2019-08-30 15:55
閱讀 810·2019-08-30 15:53
閱讀 555·2019-08-30 15:52
閱讀 2146·2019-08-30 12:59
閱讀 2269·2019-08-29 16:42
閱讀 1385·2019-08-26 18:26
閱讀 2467·2019-08-26 13:48