K8S部署之VMWare網路拓撲踩坑

2022-09-18 17:48:06 字數 1388 閱讀 7309

目錄知乎上最近發現一篇好文 **k8s(01):基於ubuntu 20.04部署1.23版k8s集群,想著之前 k8s 部署一直不成功,那麼就照著這篇文章中說的試一試。結果在實驗時遇到了 vmware 虛擬網絡卡和虛擬網路的坑,經過仔細研究和查詢資料終於大致得到解決,所以就通過這篇文章記錄一下,給自己也是給後來人提個醒。

vmware 安裝完成之後會安裝兩個虛擬網絡卡,分別是 vmnet1 和 vmnet8,前者用於 host-only 網路模式,後者用於 nat 網路模式。本文主要關注 vmnet8 的配置。

開啟 vmware,通過「編輯」選單下的「虛擬網路編輯器」開啟「虛擬網路編輯器」對話方塊。可以看到 vmnet8 用於 nat 模式,同時可以設定該網絡卡的nat選項和dhcp選項。

根據文章的描述,將vmnet8的子網ip修改為172.20.20.0,子網掩碼為255.255.255.0。單擊「nat設定」,將閘道器ip改為172.20.20.1。單擊「dhcp設定」,將ip位址池範圍改為172.20.20.2172.20.20.254。儲存設定並安裝 ubuntu server 20.04。

安裝ubuntu server 20.04 的時候發現,無論設定為dhcp還是設定靜態ip,均無法連線到軟體庫映象。一開始以為是dns問題,將dns設定為公網dns223.5.5.5,無效。後來發現無法ping通閘道器172.20.20.1。通過網路搜尋無果,反覆確認/etc/netplan/00-installer-config.yaml檔案的配置沒有錯誤。由於無法連線外網,因此無法在伺服器上安裝任何軟體。

緊接著發現原來安裝的windows虛擬機器也出現了無法上網的現象,說明和ubuntu系統無關,是虛擬網路的問題。

經過搜尋以後,終於發現問題原因了:在宿主機的網路介面卡選項裡,找到vmware virtual ethernet adapter for vmnet8,檢查ipv4設定,發現它的ip位址為172.20.20.1,剛好和vmware設定的閘道器一致。本來一直以為是宿主機本身通過vmnet8網絡卡充當閘道器的角色,但其實不是這樣,宿主機的vmnet8網絡卡只是用於和虛擬機器通訊,而它們需要通過另乙個閘道器位址來交換資料。因此,如果將閘道器位址設定為和宿主機vmnet8一樣,那麼相當於把網路中的一台主機當成了閘道器,自然無法訪問外網。

解決方法也很簡單,把vmware中vmnet8的閘道器位址改為172.20.20.2,dhcp位址池也做相應調整即可。重啟虛擬機器後發現網路連線問題解決。

vmware的vmnet8虛擬網絡卡本身起到了閘道器的作用,而並非原來理解的宿主機作為閘道器。因此,如果把閘道器位址填成了宿主機的位址,就會出現找不到閘道器的錯誤,也會使得虛擬機器無法訪問外網。

K8s部署prometheus監控K8s細節

prometheus 一些配置檔案可以再github上找到。部署 root kube prometheus manifests 目錄下所有檔案 部署 root kube prometheus manifests setup 目錄下所有檔案 要注意的是自己要建立乙個工作空間 如果報錯執行下面語句 部署...

k8s集群部署 docker部署k8s安裝篇

1 安裝docker 緊接著配置乙個穩定 stable 的倉庫 倉庫配置會儲存到 etc yum.repos.d docker ce.repo檔案中 yum config manager add repo 更新yum安裝的相關docke軟體包 安裝docker ce yum update y yum...

Azure部署K8s網路問題

最近公司需要在azure上部署k8s集群 不是直接購買aks,自己部署 部署過程中遇到了一些問題,最後發現都出在網路問題上,總結如下 1 azure上不支援calico網路外掛程式,最終調整為flannel 2 azure上coredns無法訪問宿主機dns配置 宿主機上 etc resolv.co...