首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置主机网络:true不公开主机接口

设置主机网络:true不公开主机接口
EN

Stack Overflow用户
提问于 2022-04-17 04:49:28
回答 1查看 686关注 0票数 1

我有一个非常简单的程序:

代码语言:javascript
复制
package main

import (
    "fmt"
    "github.com/vishvananda/netlink"
    )

func main() {
    _, err := netlink.LinkByName("wlp164s0")
    if err != nil {
        fmt.Println("error finding VIP Interface, for building DHCP Link : %v", err)
        return
    }
    fmt.Println("Worked..")
}

如果我创建一个码头形象,并运行它与“-net主机”,这个程序打印“工作”。它能够找到接口wlp164s0。

如果我创建这样的k8s部署:

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: netlink-example
  labels:
    app: netlink-example
spec:
  replicas: 1
  selector:
    matchLabels:
      app: netlink-example
  template:
    metadata:
      labels:
        app: netlink-example
    spec:
      hostNetwork: true
      containers:
      - name: netlink
        image: suruti94/netlink:0.1
        imagePullPolicy: IfNotPresent
      hostNetwork: true
      nodeSelector:
        kubernetes.io/os: linux

此程序打印错误,表明它无法查找接口,这意味着"hostNetwork: true“没有生效。从我所有的研究来看,这看起来是对的。任何帮助都将不胜感激。我正在Ubuntu21.04上运行这个程序,k8s版本为1.22。

EN

回答 1

Stack Overflow用户

发布于 2022-04-22 22:16:08

经过一些实验之后,我了解到k8s中的docker选项“- not”与“k8s: true”不一样。我错误地认为他们会产生类似的行为。

  • docker -net主机选项使容器中的主机接口可用,这对于某些应用程序非常有用。
  • 当您使用hostNetwork:true部署一个吊舱时,这意味着主机网络是可以从吊舱到达的。默认情况下,当部署一个pod时(我使用种类在本地计算机上验证了这一点),主机网络是可访问的。我可以看到veth接口连接到主机上的桥上。即使使用hostNetwork: false,我也能够在pod.So上更新包,不知道如何利用这个设置。在这个阶段,我的结论是,没有任何选项可以直接在吊舱上公开主机接口。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71899349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档