編輯:我設置的整點是實現(如果可能)以下:分配外部IP的Kubernetes服務
- 我有多個K8S節點
- 當我聯繫的IP地址(來自我公司的網絡),它應該被路由到我的容器/ pod/service /其中之一。
- 我應該能夠輕鬆地設置該IP(就像我的服務.yml定義)
我正在爲了一個小Kubernetes羣(帶內置kubeadm)來評估,如果我可以移動我的碼頭工人(舊)羣設置爲k8s。我絕對需要的功能是將IP分配給容器的功能,就像我使用MacVlan一樣。
在我目前的泊塢窗的設置,我使用MacVlan指定由我公司的網絡,一些容器IP地址,這樣我就可以直接到達(不反向代理)一樣,如果它是任何物理服務器。我正在努力實現與k8s類似的東西。
我發現:
- 我不得不使用服務
- 我不能使用負載平衡器類型,因爲它是唯一兼容的雲服務提供商(如GCE或AWS)。
- 我應該使用ExternalIPs
- 入口資源是某種反向代理?
我YAML文件是:
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
nodeSelector:
kubernetes.io/hostname: k8s-slave-3
---
kind: Service
apiVersion: v1
metadata:
name: nginx-service
spec:
type: ClusterIP
selector:
app: nginx
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
externalIPs:
- A.B.C.D
我跳,我的服務會得到IP A.B.C.D(這是我公司的網絡之一)。我的部署正在工作,因爲我可以使用它的ClusterIP從k8s羣集內部到達我的nginx容器。
我缺少什麼?或者至少,我在哪裏可以找到關於我的網絡流量的信息,以查看數據包是否即將到來?
編輯:
$ kubectl get svc
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes 10.96.0.1 <none> 443/TCP 6d
nginx-service 10.102.64.83 A.B.C.D 80/TCP 23h
感謝。
您確定外部IP提到路由到k8s羣集節點嗎?另外,當你運行kubectl獲得服務時,你會看到什麼? –
你可以嘗試不指定'type:ClusterIP' –
我增加了'kubectl get svc'輸出爲EDIT。刪除'type:ClusterIP'不會改變任何東西,因爲它是默認值。如何檢查流量是否進入我的羣集?在'kube-proxy'中? –