mirror of https://github.com/k3s-io/k3s
Added flannel-ipv6-masq flag to enable IPv6 nat
Signed-off-by: Roberto Bonafiglia <roberto.bonafiglia@gmail.com>pull/4982/head
parent
758331404e
commit
bb3fe9b185
|
@ -388,6 +388,7 @@ func get(ctx context.Context, envInfo *cmds.Agent, proxy proxy.Proxy) (*config.N
|
|||
SELinux: envInfo.EnableSELinux,
|
||||
ContainerRuntimeEndpoint: envInfo.ContainerRuntimeEndpoint,
|
||||
FlannelBackend: controlConfig.FlannelBackend,
|
||||
FlannelIPv6Masq: controlConfig.FlannelIPv6Masq,
|
||||
ServerHTTPSPort: controlConfig.HTTPSPort,
|
||||
}
|
||||
nodeConfig.FlannelIface = flannelIface
|
||||
|
|
|
@ -39,7 +39,7 @@ const (
|
|||
subnetFile = "/run/flannel/subnet.env"
|
||||
)
|
||||
|
||||
func flannel(ctx context.Context, flannelIface *net.Interface, flannelConf, kubeConfigFile string, netMode int) error {
|
||||
func flannel(ctx context.Context, flannelIface *net.Interface, flannelConf, kubeConfigFile string, flannelIPv6Masq bool, netMode int) error {
|
||||
extIface, err := LookupExtInterface(flannelIface, netMode)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -71,7 +71,7 @@ func flannel(ctx context.Context, flannelIface *net.Interface, flannelConf, kube
|
|||
go network.SetupAndEnsureIPTables(network.MasqRules(config.Network, bn.Lease()), 60)
|
||||
go network.SetupAndEnsureIPTables(network.ForwardRules(config.Network.String()), 50)
|
||||
|
||||
if config.IPv6Network.String() != emptyIPv6Network {
|
||||
if flannelIPv6Masq && config.IPv6Network.String() != emptyIPv6Network {
|
||||
go network.SetupAndEnsureIP6Tables(network.MasqIP6Rules(config.IPv6Network, bn.Lease()), 60)
|
||||
go network.SetupAndEnsureIP6Tables(network.ForwardRules(config.IPv6Network.String()), 50)
|
||||
}
|
||||
|
|
|
@ -99,7 +99,7 @@ func Run(ctx context.Context, nodeConfig *config.Node, nodes typedcorev1.NodeInt
|
|||
return errors.Wrap(err, "failed to check netMode for flannel")
|
||||
}
|
||||
go func() {
|
||||
err := flannel(ctx, nodeConfig.FlannelIface, nodeConfig.FlannelConfFile, nodeConfig.AgentConfig.KubeConfigKubelet, netMode)
|
||||
err := flannel(ctx, nodeConfig.FlannelIface, nodeConfig.FlannelConfFile, nodeConfig.AgentConfig.KubeConfigKubelet, nodeConfig.FlannelIPv6Masq, netMode)
|
||||
if err != nil && !errors.Is(err, context.Canceled) {
|
||||
logrus.Fatalf("flannel exited: %v", err)
|
||||
}
|
||||
|
|
|
@ -52,6 +52,7 @@ type Server struct {
|
|||
DisableScheduler bool
|
||||
ServerURL string
|
||||
FlannelBackend string
|
||||
FlannelIPv6Masq bool
|
||||
DefaultLocalStoragePath string
|
||||
DisableCCM bool
|
||||
DisableNPC bool
|
||||
|
@ -193,6 +194,11 @@ var ServerFlags = []cli.Flag{
|
|||
Destination: &ServerConfig.FlannelBackend,
|
||||
Value: "vxlan",
|
||||
},
|
||||
cli.BoolFlag{
|
||||
Name: "flannel-ipv6-masq",
|
||||
Usage: "(networking) Enable IPv6 masquerading for pod",
|
||||
Destination: &ServerConfig.FlannelIPv6Masq,
|
||||
},
|
||||
ServerToken,
|
||||
cli.StringFlag{
|
||||
Name: "token-file",
|
||||
|
|
|
@ -131,6 +131,7 @@ func run(app *cli.Context, cfg *cmds.Server, leaderControllers server.CustomCont
|
|||
serverConfig.ControlConfig.AdvertiseIP = cfg.AdvertiseIP
|
||||
serverConfig.ControlConfig.AdvertisePort = cfg.AdvertisePort
|
||||
serverConfig.ControlConfig.FlannelBackend = cfg.FlannelBackend
|
||||
serverConfig.ControlConfig.FlannelIPv6Masq = cfg.FlannelIPv6Masq
|
||||
serverConfig.ControlConfig.ExtraCloudControllerArgs = cfg.ExtraCloudControllerArgs
|
||||
serverConfig.ControlConfig.DisableCCM = cfg.DisableCCM
|
||||
serverConfig.ControlConfig.DisableNPC = cfg.DisableNPC
|
||||
|
|
|
@ -34,6 +34,7 @@ type Node struct {
|
|||
FlannelConfFile string
|
||||
FlannelConfOverride bool
|
||||
FlannelIface *net.Interface
|
||||
FlannelIPv6Masq bool
|
||||
Containerd Containerd
|
||||
Images string
|
||||
AgentConfig Agent
|
||||
|
@ -115,6 +116,7 @@ type CriticalControlArgs struct {
|
|||
DisableNPC bool
|
||||
DisableServiceLB bool
|
||||
FlannelBackend string
|
||||
FlannelIPv6Masq bool
|
||||
NoCoreDNS bool
|
||||
ServiceIPRange *net.IPNet
|
||||
ServiceIPRanges []*net.IPNet
|
||||
|
|
Loading…
Reference in New Issue