如何完全清除minikube配置或将IP重置为192.168.99.100

问题描述 投票:2回答:3

我想完全清除Minikube,以便我可以重新开始,就像我第一次安装它一样,以避免一些配置冲突。 Mailnly有初始IP 192.168.99.100,不幸的是它在下一个minikube start增加到192.168.99.101等我已经跑去删除Minikube:

minikube delete rm -rf ~/.minikube rm -rf ~/.kube

我在Ubuntu 18.04上使用驱动程序VirtualBox 5.2.18运行minikube版本:v0.31.0

minikube
3个回答
0
投票

Minikube用于不同的平台,因此添加与其中最受欢迎的信息相关可能会有所帮助。

Minikube不负责为其VM分配IP地址。

如果您在Windows或MacOS上启动minikube,则会创建新VM。该VM从虚拟机管理程序DHCP服务池中获取第一个可用的IP地址。简而言之,DHCP服务在一段时间内为VM保留此IP,通常为24小时到7天。如果在此期间客户端不刷新DHCP租约并且该IP在网络上不可用,则IP被认为是免费的并且可以提供给另一个客户端。

VirtualBox仅具有其DHCP服务的基本设置,不允许您配置租约时间或静态IP绑定。因此,在使用minikube ssh创建VM后,您可以尝试更改minikube VM网络接口的ip配置。或者您可以在创建后立即使用VM MAC地址,因为DHCP根据主机MAC地址提供IP地址。

HyperV在本地网络上使用现有DHCP用于共享网络,或者为内部网络使用手动配置的DHCP服务器。如果您可以访问DHCP管理控制台,则可以在使用minikube start启动新VM之前删除旧的minikube VM IP绑定。

对于Linux,您可以选择两个选项,您可以使用虚拟机管理程序并创建类似于Windows或MAC的VM,因此DHCP将像我之前提到的那样工作,或者您可以使用-vm-driver=none参数并在主机环境中设置Kubernetes集群而无需VM 。在这种情况下,您的主机成为具有相同IP配置的Kubernetes主节点。


1
投票

我在VirtualBox上也发现了这个问题。我尝试删除主机网络管理器,但它对我不起作用。但是,我找到了另一个解决方案。

发出minikube delete后,我删除了以下文件:

/Users/{username}/Library/VirtualBox/HostInterfaceNetworking-vboxnet0-Dhcpd.leases

再次启动minikube会将地址重置为.100。

文件内容:

<?xml version="1.0"?>
<Leases version="1.0">
  <Lease mac="08:00:27:66:6a:19" id="01080027666a19" network="0.0.0.0" state="expired">
    <Address value="192.168.99.102"/>
    <Time issued="1555277299" expiration="1200"/>
  </Lease>
  <Lease mac="08:00:27:08:03:a3" id="010800270803a3" network="0.0.0.0" state="expired">
    <Address value="192.168.99.101"/>
    <Time issued="1555276993" expiration="1200"/>
  </Lease>
  <Lease mac="08:00:27:32:ed:f8" id="0108002732edf8" network="0.0.0.0" state="expired">
    <Address value="192.168.99.100"/>
    <Time issued="1555276537" expiration="1200"/>
  </Lease>
</Leases>

0
投票

你可以使用这个用于Linux / Mac的Python脚本将ip重置为192.168.99.100

にべ_ t

#!/usr/bin/env python3

import subprocess as sp
from sys import platform
import os

if __name__ == "__main__":

    print("Resetting Virtualbox DHCP...")

    procs = sp.run("ps aux", shell=True, stdout=sp.PIPE)\
        .stdout.decode("utf8").lower().split('\n')

    pids = [
        p.split()[1] for p in procs if 'vboxsvc' in p or 'vboxnetdhcp' in p
    ]

    for pid in pids:
        sp.run(['kill', '-9', pid])

    cfg_dir = ".config" if platform != 'darwin' else 'Library'
    file = f"~/{cfg_dir}/VirtualBox/HostInterfaceNetworking-vboxnet0-Dhcpd.leases"

    try:
        os.remove(os.path.expanduser(file))
    except OSError as e:
        pass

如果您通过chmod +x minikube_reset使脚本成为可执行文件并将其放入路径中,则可以运行:

minikube stop    # Stop your running minikube instance.
minikube_reset   # Reset the ip.
minikube start   # Start new minikube instance with 192.168.99.100.

192.168.99.100之后,你的minikube实例应该始终以minikube_reset开头。


-2
投票

对于Ubuntu 18.0.4,你可以试试

rm -r /home/username/.config/VirtualBox/HostInterfaceNetworking-vboxnet0-Dhcpd.leases
© www.soinside.com 2019 - 2024. All rights reserved.