我已經在裸機上安裝了帶法蘭絨網絡的Kubernetes集羣。我有一個服務部署並在集羣中運行。該服務將廣播以發現同一子網中的其他終端設備。是否可以使用Kubernetes窗格在同一子網中加入硬件?
問題是,接收廣播的客戶端代理正在資源受限的硬件上運行。這些設備與主節點和工作節點在同一子網中運行。 pod(網絡掩碼:10.244.0.0/16)中的已部署服務無法發現在主機操作系統子網中運行的客戶端(網絡掩碼:192.168.0.0/24)。如何加入豆莢子網中的客戶端?
任何幫助表示感謝。
我已經在裸機上安裝了帶法蘭絨網絡的Kubernetes集羣。我有一個服務部署並在集羣中運行。該服務將廣播以發現同一子網中的其他終端設備。是否可以使用Kubernetes窗格在同一子網中加入硬件?
問題是,接收廣播的客戶端代理正在資源受限的硬件上運行。這些設備與主節點和工作節點在同一子網中運行。 pod(網絡掩碼:10.244.0.0/16)中的已部署服務無法發現在主機操作系統子網中運行的客戶端(網絡掩碼:192.168.0.0/24)。如何加入豆莢子網中的客戶端?
任何幫助表示感謝。
我最終通過在pod配置中添加hostNetwork: true
來使主機和Pod在相同的子網中運行。在這種情況下,容器正在使用主機網絡。從here
配置的啓發是這樣的:
apiVersion: v1
kind: ReplicationController
metadata:
name: worker
namespace: default
spec:
replicas: 4
selector:
name: worker
template:
metadata:
labels:
name: worker
spec:
hostNetwork: true
containers:
- image: 10.0.0.1:5000/worker
name: worker
imagePullPolicy: IfNotPresent
問題是它們實際上位於不同的子網中:pod網絡和裸機網絡。因此,您必須檢查在不同子網之間可用於服務發現的選項。有人提出使用跟蹤器(就像P2P網絡工作)https://serverfault.com/a/304344/380575。
您也可以嘗試將外部服務/端點添加到在羣集外部運行的服務,但我很不確定這是否可行。底線:如果您需要其他子網中的服務,您可以使用跟蹤器或爲其創建靜態端點。