国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

從集群外訪問k8s的pod 的幾種方式--hostNetwork

weapon / 3756人閱讀

摘要:前言有種方法可以讓集群外訪問運行在集群上的應用程序。當群集上運行的應用程序數量增加時,這可能會導致端口沖突。由于這些原因,主機網絡不是使您的應用程序可以從群集外部訪問的好方法。例如,可以將網絡插件部署為在集群的所有節點上設置的守護進程。

前言

有5種方法可以讓集群外訪問運行在Kubernetes集群上的應用程序(pod)。接下來我們詳細討論Kubernetes的hostNetwork,hostPort,NodePort,LoadBalancer和Ingress功能。本章內容主要解讀一下hostNetwork。


hostNetwork demo

hostNetwork設置適用于Kubernetes pod。當pod配置為hostNetwork:true時,在此類pod中運行的應用程序可以直接查看啟動pod的主機的網絡接口。配置為偵聽所有網絡接口的應用程序,又可以在主機的所有網絡接口上訪問。以下是使用主機網絡的pod的示例定義:

apiVersion: v1
kind: Pod
metadata:
  name: influxdb
spec:
  hostNetwork: true
  containers:
    - name: influxdb
      image: influxdb

您可以使用以下命令啟動pod:

$ kubectl create -f influxdb-hostnetwork.yml

您可以檢查InfluxDB應用程序是否正在運行:

$ curl -v http://kubenode01.example.com:8086/ping
剖析

當pod 設置hostNetwork: true時候,Pod中的所有容器就直接暴露在宿主機的網絡環境中,這時候,Pod的PodIP就是其所在Node的IP。

對于同Deployment下的hostNetwork: true啟動的Pod,每個node上只能啟動一個。也就是說,Host模式的Pod啟動副本數不可以多于“目標node”的數量,“目標node”指的是在啟動Pod時選定的node,若未選定(沒有指定nodeSelector),“目標node”的數量就是集群中全部的可用的node的數量。當副本數大于“目標node”的數量時,多出來的Pod會一直處于Pending狀態,因為schedule已經找不到可以調度的node了。

以下示例中,集群只有4個node,當設置副本數量為5時,最后一個Pod狀態會一直處于Pending狀態。

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                

當多個host模式deployment的端口沖突的時候,最后啟動的那些Pod就會一直處于Pending狀態。

PS

請注意,每次重新啟動pod時,Kubernetes都可能將pod重新安排到其他節點上,因此應用程序的IP地址將更改。除此之外,需要相同端口的兩個應用程序不能在同一節點上運行。當群集上運行的應用程序數量增加時,這可能會導致端口沖突。由于這些原因,主機網絡不是使您的應用程序可以從群集外部訪問的好方法。

主機網絡在那些方面有用那?

對于需要直接訪問主機網絡的情況。例如,可以將Kubernetes網絡插件Flannel部署為在Kubernetes集群的所有節點上設置的守護進程。由于hostNetwork:true,Flannel完全控制集群中每個節點上的網絡,允許它管理與hostNetwork:false的pod連接到的覆蓋網絡。

因為每個node上只能啟動一個同deployment的pod,通過該特性,在某種程度上可以實現同一應用的pod不部署在同一臺主機的需求。但是我更傾向于使用之前文章介紹過的pod的反親和性來解決。

參考文章:Accessing Kubernetes Pods from Outside of the Cluster

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/33063.html

相關文章

  • 集群訪問k8spod 幾種方式--hostNetwork

    摘要:前言有種方法可以讓集群外訪問運行在集群上的應用程序。當群集上運行的應用程序數量增加時,這可能會導致端口沖突。由于這些原因,主機網絡不是使您的應用程序可以從群集外部訪問的好方法。例如,可以將網絡插件部署為在集群的所有節點上設置的守護進程。 前言 有5種方法可以讓集群外訪問運行在Kubernetes集群上的應用程序(pod)。接下來我們詳細討論Kubernetes的hostNetwork,...

    ispring 評論0 收藏0
  • 使用云廠商托管K8S時容器域名解析注意事項

    摘要:云廠商托管服務的域名解析注意事項使用云廠家提供托管式,的域名解析參數,通過界面創建的話,可能廠商界面沒有開放配置,采用了一些默認值,在使用時候,需要了解清楚廠商提供的默認配置,否則會存在問題。原文鏈接使用云廠商托管時容器域名解析注意事項 云廠商托管 Kubernetes 服務的 Pod 域名解析注意事項 使用云廠家提供托管式Kubernetes,Pod的域名解析參數,通過界面創建Pod...

    canger 評論0 收藏0
  • etcd管理,證書配置,擴展,遷移恢復,帶證書擴展節點

    摘要:廣告各版本離線安裝包證書配置生產環境中給配置證書相當重要,如果沒有證書,那么集群很容易被黑客利用而去挖礦什么的。細節問題非常多,一個端口,一個都不要填錯,否則就會各種錯誤包括新加節點要清數據這些小細節問題。 廣告 | kubernetes各版本離線安裝包 etcd 證書配置 生產環境中給etcd配置證書相當重要,如果沒有證書,那么k8s集群很容易被黑客利用而去挖礦什么的。做法非常簡單...

    張漢慶 評論0 收藏0
  • etcd管理,證書配置,擴展,遷移恢復,帶證書擴展節點

    摘要:廣告各版本離線安裝包證書配置生產環境中給配置證書相當重要,如果沒有證書,那么集群很容易被黑客利用而去挖礦什么的。細節問題非常多,一個端口,一個都不要填錯,否則就會各種錯誤包括新加節點要清數據這些小細節問題。 廣告 | kubernetes各版本離線安裝包 etcd 證書配置 生產環境中給etcd配置證書相當重要,如果沒有證書,那么k8s集群很容易被黑客利用而去挖礦什么的。做法非常簡單...

    mengbo 評論0 收藏0
  • 帶著問題學 Kubernetes 抽象對象 Service

    摘要:慶幸,引入了這個抽象的概念。會虛擬出一個,并在它銷毀之前保持該地址保持不變。通過對它的訪問,以代理的方式負載到對應的上,同時生命周期的變換,也會及時反應在代理上。該與同名,它所暴露的地址信息正是對應的地址。由此猜測是維護了與的映射關系。 帶著問題學 Kubernetes 抽象對象 Service 摘要:本文屬于原創,歡迎轉載,轉載請保留出處:https://github.com/jas...

    baukh789 評論0 收藏0

發表評論

0條評論

weapon

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<