K8S部署之VMWare网络拓扑踩坑
背景
知乎上最近发现一篇好文 图解K8S(01):基于Ubuntu 20.04部署1.23版K8S集群,想着之前 K8S 部署一直不成功,那么就照着这篇文章中说的试一试。结果在实验时遇到了 VMWare 虚拟网卡和虚拟网络的坑,经过仔细研究和查找资料终于大致得到解决,所以就通过这篇文章记录一下,给自己也是给后来人提个醒。
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.2 到 172.20.20.254。保存设置并安装 Ubuntu Server 20.04。
安装 Ubuntu Server 20.04 时遇到的网络问题
安装Ubuntu Server 20.04 的时候发现,无论设置为DHCP还是设置静态IP,均无法连接到软件库镜像。一开始以为是DNS问题,将DNS设置为公网DNS 223.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部署之VMWare网络拓扑踩坑的更多相关文章
- Linux下部署MySQL,大小写敏感踩坑记录
今天在将开发环境中的门户数据库复制到新环境后,使用SqlSugar的ORM框架进行数据库操作的时候,出现了主键找不到的现象.排查了很久终于发现了关键点.特此记录. 1.开发环境: 操作系统:CE ...
- DotNetCore部署(IIS)踩坑记
一.windows系统中Dotnet core runtime 安装后,无法启动次程序,因为计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll的解决方法 错误现象如图 因为 ...
- 用户数从 0 到亿,我的 K8s 踩坑血泪史
作者 | 平名 阿里服务端开发技术专家 导读:容器服务 Kubernetes 是目前炙手可热的云原生基础设施,作者过去一年上线了一个用户数极速增长的应用:该应用一个月内日活用户从零至四千万,用户数从零 ...
- IdentityServer 部署踩坑记
IdentityServer 部署踩坑记 Intro 周末终于部署了 IdentityServer 以及 IdentityServerAdmin 项目,踩了几个坑,在此记录分享一下. 部署架构 项目是 ...
- 【踩坑经历】一次Asp.NET小网站部署踩坑和解决经历
2013年给1个大学的小客户部署过一个小型的Asp.NET网站,非常小,用的sqlite数据库,今年人家说要换台服务器,要重新部署一下,好吧,虽然早就过了服务时间,但无奈谁叫人家是客户了,二话不说,上 ...
- github webhook 实现代码自动部署 踩坑!! 附加git&coding webhook部署代码
踩坑: 1.php程序执行linux命令是以webserver的user用户(如apache .www……)操作的,需要在/etc/sudoers添加用户免密码操作权限; %apache ALL=(A ...
- k8s踩坑记第1篇--rc无法创建
六一快乐!!! 什么是k8s,我不想解释,百度资料有很多,本系列只踩坑,不科普. 问题描述: 做Hello World的例子,结果get pods一直显示没有资源? 应用配置代码: apiVersio ...
- Mac系统STF自动化环境搭建及部署踩坑记录
因为公司需要寻找一个免root的自动化测试方案,所以以前做的老方案需要被替代.一阵搜寻找到了这个框架,但是部署起来很是折腾,搞了一下午终于搞定,顺便记录一下过程,有需要的自取. 转载请注明出处:htt ...
- C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式
C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...
- vuePress自动部署到Github Page脚本踩坑
背景 照着官网的教程来就行了,踩了个小坑,记录一下,希望对你有帮助 这是部署后的效果 小坑1 如图所示,官网推荐部署命令 然而windows 没有bash 指令, 直接运行报错 两个解决方法: 项目根 ...
随机推荐
- Jackson 使用 @JsonFormat 注解进行时间格式化
本文为博主原创,未经允许不得转载: 最近帮同事定位了一个现网问题,记录一下: 项目中对所有请求的参数都进行了 Jackson 序列化,在接收请求的实体类字段上使用 @JsonFormat 注解,该注解 ...
- AI毕业设计生成器(基于AI大模型技术开发)
这是一个辅助生成计算机毕业设计的工具,可以自动完成毕业设计的源码.它基于几百个github上面开源的java和python项目,运用tengsorflow技术,训练出了AI大模型.基本实现了计算机毕业 ...
- Shell-case-in-分支
- MySQL调优学习-快速获取占用CPU较高的SQL语句
MySQL调优学习-快速获取占用CPU较高的SQL语句 背景 早上突然发现一个MySQL数据库的CPU使用率居高 因为是一个混布的环境上面还有一个redis 怕影响业务就上去像查看一下具体是何种原因导 ...
- [转帖]TiFlash DeltaTree 存储引擎设计及实现分析 - Part 1
https://tidb.net/book/book-rush/features/tiflash-code/tiflash-deltatree TiFlash 是 TiDB 的分析引擎,是 TiDB ...
- Windows 可以操纵linux内文件,与本地一致的工具
https://github.com/allanrbo/filesremote/releases/ 感觉挺好的.
- vscode推荐插件
js相关的插件 JavaScript (ES6) code snippets Babel ES6/ES7 html css 汉化 Chinese (Simplified) (简体中文) Languag ...
- React中css的module
处理css全局作用 现在有这样一个场景: A页面和B页面都有一个相同的类名 我们在A页面中有引入css. B页面没有css 在我们切换A和B页面的时候. A页面的css也作用在了B页面. 我们只希望A ...
- 队列(Queue):先进先出(FIFO)的数据结构
队列是一种基本的数据结构,用于在计算机科学和编程中管理数据的存储和访问.队列遵循先进先出(First In, First Out,FIFO)原则,即最早入队的元素首先出队.这种数据结构模拟了物理世界中 ...
- 获取Unity和UGUUI内置组件的属性名
需求来源 在阅读UGUI的源码时,发现Unity对于私有字段才加了[[SerializeField]]标签,而public的没有,且在Editor扩展中,也是查找带序列化标签的私有字段进行修改,那么在 ...