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.2172.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虚拟网卡本身起到了网关的作用,而并非原来理解的宿主机作为网关。因此,如果把网关地址填成了宿主机的地址,就会出现找不到网关的错误,也会使得虚拟机无法访问外网。

Original: https://www.cnblogs.com/ryuasuka/p/15817426.html
Author: 飞鸟_Asuka
Title: K8S部署之VMWare网络拓扑踩坑

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/524160/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • LeetCode 907: 子数组的最小值之和-单调栈的运用 |Sum of Subarray Minimums-Fantasy use of Monotonic Stack

    Tags: #MonoStack #Stack Problem Description Given an array of integers arr, find the sum o…

    Linux 2023年6月13日
    099
  • 二进制安装docker

    下载二进制包 压到 /usr/local/bin ,我用的版本比较新 https://download.docker.com/linux/static/stable/x86_64/…

    Linux 2023年6月6日
    0125
  • Rsync数据备份工具

    Rsync数据备份工具 1、Rsync基本概述 rsync是一款开源的备份工具,可以在不同主机之间进行同步(windows和Linux之间 Mac和 Linux Linux和Lin…

    Linux 2023年6月7日
    0126
  • nginx源码编译安装(详解)

    nginx编译安装 编译安装大致步骤: 安装步骤: 官网下载合适的版本,建议选择稳定版本。 官网地址:https://nginx.org wget https://nginx.or…

    Linux 2023年5月27日
    0188
  • 剑指offer计划25(模拟中等)—java

    1.1、题目1 剑指 Offer 29. 顺时针打印矩阵 1.2、解法 常规开头,先判断特殊情况,然后创建四个变量存放矩阵四边的长度限制。创建res数组存放结果。循坏开始,遍历完一…

    Linux 2023年6月11日
    0119
  • php发送邮件 (phpmailer)

    1.首先下载phpMailer文件官方文件https://sourceforge.net/projects/phpmailer/; 还有class.smtp.php. 2.去配置一…

    Linux 2023年6月14日
    0106
  • 2020年12月-第02阶段-前端基础-CSS Day05

    CSS Day05 学成在线页面制作 理解 能够说写单页面我们基本的流程能说出常见的css初始化语句能说出我们CSS属性书写顺序 应用 能利用ps切图能引入外部样式表能把psd文件…

    Linux 2023年6月8日
    0139
  • centos8 安装kudu

    1、安装cmake yum install cmake -y 2、安装python yum install python39 -y 设置默认Python版本 alternative…

    Linux 2023年6月8日
    091
  • 【.Net vs Java? 】 看一看二者的类有多像?

    1. 包(Package)、命名空间(NameSpace) 在Java中常用的是包(Package),较少提到NameSpace的概念。Java官方文档中这样说: 为了使类型更易于…

    Linux 2023年6月7日
    0131
  • 开发环境的搭建

    ​ 一:ubuntu14.04 LTS开发环境搭建 1.1、参考博客 参考的教程如下: ubuntu老版本下载地址 VMware下Ubuntu Server 14.04安装教程(最…

    Linux 2023年6月13日
    0113
  • SpringBoot-JDBC

    SpringBoot-JDBC 8.1 SpringData简介 对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 底层都…

    Linux 2023年6月14日
    0127
  • 1. 文件与I/O

    内核是如何处理系统调用 每个系统调用被赋予了一个系统调用号 在i386平台上,执行一个系统调用是通过int 0X80指令完成的 eax存放系统的调用号 ebx,ecx,edx,es…

    Linux 2023年6月6日
    0106
  • IP地址、子网掩码、网关、DNS的介绍

    客户端:应用 C/S(客户端/服务器) B/S(浏览器/服务器); 服&#x52A1…

    Linux 2023年6月6日
    0110
  • Tensorflow

    1.什么是Tensorflow? Tensor(张量)意味着 N 维数组,Flow(流)意味着基于数据流图的计算,TensorFlow即为张量从图的一端流动到另一端。 它支持CNN…

    Linux 2023年6月6日
    0119
  • OpenSSL测试-大数

    任务详情 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务 基于OpenSSL的大数库计算2的N次方,N为你学号的后四位(5’) 基于…

    Linux 2023年6月8日
    0112
  • Kasini3000 batch modify the password for windows node

    https://gitee.com/chuanjiao10/kasini3000 win,linux devops automation batch script framewor…

    Linux 2023年6月13日
    0132
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球