diff options
| author | luomengY <2938893385@qq.com> | 2023-11-16 22:35:50 +0800 |
|---|---|---|
| committer | luomengY <2938893385@qq.com> | 2023-11-22 19:10:08 +0800 |
| commit | 66d77a99443556d0ad412b0d6111e977eda485d3 (patch) | |
| tree | 5934e2f59a0b65a08ac02247c386dadf91cf150d /keadm | |
| parent | Merge pull request #5157 from zhiyingfang2022/fzy1108 (diff) | |
| download | kubeedge-66d77a99443556d0ad412b0d6111e977eda485d3.tar.gz | |
fix quic server ip
Signed-off-by: luomengY <2938893385@qq.com>
Diffstat (limited to 'keadm')
| -rw-r--r-- | keadm/cmd/keadm/app/cmd/common/constant.go | 2 | ||||
| -rw-r--r-- | keadm/cmd/keadm/app/cmd/common/types.go | 1 | ||||
| -rw-r--r-- | keadm/cmd/keadm/app/cmd/deprecated/join.go | 3 | ||||
| -rw-r--r-- | keadm/cmd/keadm/app/cmd/edge/join.go | 2 | ||||
| -rw-r--r-- | keadm/cmd/keadm/app/cmd/edge/join_others.go | 36 | ||||
| -rw-r--r-- | keadm/cmd/keadm/app/cmd/edge/join_windows.go | 20 | ||||
| -rwxr-xr-x | keadm/cmd/keadm/app/cmd/util/edgecoreinstaller.go | 19 |
7 files changed, 78 insertions, 5 deletions
diff --git a/keadm/cmd/keadm/app/cmd/common/constant.go b/keadm/cmd/keadm/app/cmd/common/constant.go index 74b245dea..581d0ff6b 100644 --- a/keadm/cmd/keadm/app/cmd/common/constant.go +++ b/keadm/cmd/keadm/app/cmd/common/constant.go @@ -100,6 +100,8 @@ const ( HelmInstallAction = "install" HelmManifestAction = "manifest" + HubProtocol = "hub-protocol" + CmdGetDNSIP = "cat /etc/resolv.conf | grep nameserver | grep -v -E ':|#' | awk '{print $2}' | head -n1" CmdGetStatusDocker = "systemctl status docker |grep Active | awk '{print $2}'" CmdPing = "ping %s -w %d |grep 'packets transmitted' |awk '{print $6}'" diff --git a/keadm/cmd/keadm/app/cmd/common/types.go b/keadm/cmd/keadm/app/cmd/common/types.go index 1c2cf351a..e48627d4e 100644 --- a/keadm/cmd/keadm/app/cmd/common/types.go +++ b/keadm/cmd/keadm/app/cmd/common/types.go @@ -59,6 +59,7 @@ type JoinOptions struct { Labels []string WithMQTT bool ImageRepository string + HubProtocol string } type CheckOptions struct { diff --git a/keadm/cmd/keadm/app/cmd/deprecated/join.go b/keadm/cmd/keadm/app/cmd/deprecated/join.go index 849ed7ac1..452d8284a 100644 --- a/keadm/cmd/keadm/app/cmd/deprecated/join.go +++ b/keadm/cmd/keadm/app/cmd/deprecated/join.go @@ -28,6 +28,7 @@ import ( types "github.com/kubeedge/kubeedge/keadm/cmd/keadm/app/cmd/common" "github.com/kubeedge/kubeedge/keadm/cmd/keadm/app/cmd/edge" "github.com/kubeedge/kubeedge/keadm/cmd/keadm/app/cmd/util" + "github.com/kubeedge/viaduct/pkg/api" ) var ( @@ -84,6 +85,7 @@ func NewDeprecatedEdgeJoin() *cobra.Command { func newJoinOptions() *types.JoinOptions { opts := &types.JoinOptions{} opts.CertPath = types.DefaultCertPath + opts.HubProtocol = api.ProtocolTypeWS return opts } @@ -129,6 +131,7 @@ func Add2EdgeToolsList(toolList map[string]types.ToolsInstaller, flagData map[st CGroupDriver: joinOptions.CGroupDriver, TarballPath: joinOptions.TarballPath, Labels: joinOptions.Labels, + HubProtocol: joinOptions.HubProtocol, } toolList["MQTT"] = &util.MQTTInstTool{} diff --git a/keadm/cmd/keadm/app/cmd/edge/join.go b/keadm/cmd/keadm/app/cmd/edge/join.go index 08eb8c4dd..4c9ef5fb4 100644 --- a/keadm/cmd/keadm/app/cmd/edge/join.go +++ b/keadm/cmd/keadm/app/cmd/edge/join.go @@ -28,6 +28,7 @@ import ( "github.com/kubeedge/kubeedge/keadm/cmd/keadm/app/cmd/common" "github.com/kubeedge/kubeedge/keadm/cmd/keadm/app/cmd/util" "github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2" + "github.com/kubeedge/viaduct/pkg/api" ) var ( @@ -110,6 +111,7 @@ func newOption() *common.JoinOptions { joinOptions.CertPath = common.DefaultCertPath joinOptions.RuntimeType = kubetypes.RemoteContainerRuntime joinOptions.RemoteRuntimeEndpoint = constants.DefaultRemoteRuntimeEndpoint + joinOptions.HubProtocol = api.ProtocolTypeWS return joinOptions } diff --git a/keadm/cmd/keadm/app/cmd/edge/join_others.go b/keadm/cmd/keadm/app/cmd/edge/join_others.go index afaf9191b..7acf9a5ba 100644 --- a/keadm/cmd/keadm/app/cmd/edge/join_others.go +++ b/keadm/cmd/keadm/app/cmd/edge/join_others.go @@ -41,6 +41,7 @@ import ( "github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2" "github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2/validation" pkgutil "github.com/kubeedge/kubeedge/pkg/util" + "github.com/kubeedge/viaduct/pkg/api" ) func AddJoinOtherFlags(cmd *cobra.Command, joinOptions *common.JoinOptions) { @@ -88,6 +89,9 @@ func AddJoinOtherFlags(cmd *cobra.Command, joinOptions *common.JoinOptions) { cmd.Flags().StringVar(&joinOptions.ImageRepository, common.ImageRepository, joinOptions.ImageRepository, `Use this key to decide which image repository to pull images from`, ) + + cmd.Flags().StringVar(&joinOptions.HubProtocol, common.HubProtocol, joinOptions.HubProtocol, + `Use this key to decide which communication protocol the edge node adopts.`) } func createEdgeConfigFiles(opt *common.JoinOptions) error { @@ -121,7 +125,6 @@ func createEdgeConfigFiles(opt *common.JoinOptions) error { edgeCoreConfig = v1alpha2.NewDefaultEdgeCoreConfig() } - edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = opt.CloudCoreIPPort // TODO: remove this after release 1.14 // this is for keeping backward compatibility // don't save token in configuration edgecore.yaml @@ -158,6 +161,21 @@ func createEdgeConfigFiles(opt *common.JoinOptions) error { } else { edgeCoreConfig.Modules.EdgeHub.HTTPServer = "https://" + net.JoinHostPort(host, "10002") } + + switch opt.HubProtocol { + case api.ProtocolTypeQuic: + edgeCoreConfig.Modules.EdgeHub.Quic.Enable = true + edgeCoreConfig.Modules.EdgeHub.WebSocket.Enable = false + edgeCoreConfig.Modules.EdgeHub.Quic.Server = opt.CloudCoreIPPort + edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = net.JoinHostPort(host, strconv.Itoa(constants.DefaultWebSocketPort)) + case api.ProtocolTypeWS: + edgeCoreConfig.Modules.EdgeHub.Quic.Enable = false + edgeCoreConfig.Modules.EdgeHub.WebSocket.Enable = true + edgeCoreConfig.Modules.EdgeHub.Quic.Server = net.JoinHostPort(host, strconv.Itoa(constants.DefaultQuicPort)) + edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = opt.CloudCoreIPPort + default: + return fmt.Errorf("unsupported hub of protocol: %s", opt.HubProtocol) + } edgeCoreConfig.Modules.EdgeStream.TunnelServer = net.JoinHostPort(host, strconv.Itoa(constants.DefaultTunnelPort)) if len(opt.Labels) > 0 { @@ -275,7 +293,6 @@ func createV1alpha1EdgeConfigFiles(opt *common.JoinOptions) error { edgeCoreConfig = v1alpha1.NewDefaultEdgeCoreConfig() } - edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = opt.CloudCoreIPPort if opt.Token != "" { edgeCoreConfig.Modules.EdgeHub.Token = opt.Token } @@ -310,6 +327,21 @@ func createV1alpha1EdgeConfigFiles(opt *common.JoinOptions) error { } else { edgeCoreConfig.Modules.EdgeHub.HTTPServer = "https://" + net.JoinHostPort(host, "10002") } + + switch opt.HubProtocol { + case api.ProtocolTypeQuic: + edgeCoreConfig.Modules.EdgeHub.Quic.Enable = true + edgeCoreConfig.Modules.EdgeHub.WebSocket.Enable = false + edgeCoreConfig.Modules.EdgeHub.Quic.Server = opt.CloudCoreIPPort + edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = net.JoinHostPort(host, strconv.Itoa(constants.DefaultWebSocketPort)) + case api.ProtocolTypeWS: + edgeCoreConfig.Modules.EdgeHub.Quic.Enable = false + edgeCoreConfig.Modules.EdgeHub.WebSocket.Enable = true + edgeCoreConfig.Modules.EdgeHub.Quic.Server = net.JoinHostPort(host, strconv.Itoa(constants.DefaultQuicPort)) + edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = opt.CloudCoreIPPort + default: + return fmt.Errorf("unsupported hub of protocol: %s", opt.HubProtocol) + } edgeCoreConfig.Modules.EdgeStream.TunnelServer = net.JoinHostPort(host, strconv.Itoa(constants.DefaultTunnelPort)) if len(opt.Labels) > 0 { diff --git a/keadm/cmd/keadm/app/cmd/edge/join_windows.go b/keadm/cmd/keadm/app/cmd/edge/join_windows.go index 60bb8bd17..e9a8ee5d7 100644 --- a/keadm/cmd/keadm/app/cmd/edge/join_windows.go +++ b/keadm/cmd/keadm/app/cmd/edge/join_windows.go @@ -41,6 +41,7 @@ import ( "github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2" "github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2/validation" pkgutil "github.com/kubeedge/kubeedge/pkg/util" + "github.com/kubeedge/viaduct/pkg/api" ) func AddJoinOtherFlags(cmd *cobra.Command, joinOptions *common.JoinOptions) { @@ -72,6 +73,9 @@ func AddJoinOtherFlags(cmd *cobra.Command, joinOptions *common.JoinOptions) { cmd.Flags().StringSliceVarP(&joinOptions.Labels, common.Labels, "l", joinOptions.Labels, `Use this key to set the customized labels for node, you can input customized labels like key1=value1,key2=value2`) + + cmd.Flags().StringVar(&joinOptions.HubProtocol, common.HubProtocol, joinOptions.HubProtocol, + `Use this key to decide which communication protocol the edge node adopts.`) } func createEdgeConfigFiles(opt *common.JoinOptions) error { @@ -102,7 +106,6 @@ func createEdgeConfigFiles(opt *common.JoinOptions) error { edgeCoreConfig = v1alpha2.NewDefaultEdgeCoreConfig() } - edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = opt.CloudCoreIPPort // TODO: remove this after release 1.14 // this is for keeping backward compatibility // don't save token in configuration edgecore.yaml @@ -130,6 +133,21 @@ func createEdgeConfigFiles(opt *common.JoinOptions) error { } else { edgeCoreConfig.Modules.EdgeHub.HTTPServer = "https://" + net.JoinHostPort(host, "10002") } + + switch opt.HubProtocol { + case api.ProtocolTypeQuic: + edgeCoreConfig.Modules.EdgeHub.Quic.Enable = true + edgeCoreConfig.Modules.EdgeHub.WebSocket.Enable = false + edgeCoreConfig.Modules.EdgeHub.Quic.Server = opt.CloudCoreIPPort + edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = net.JoinHostPort(host, strconv.Itoa(constants.DefaultWebSocketPort)) + case api.ProtocolTypeWS: + edgeCoreConfig.Modules.EdgeHub.Quic.Enable = false + edgeCoreConfig.Modules.EdgeHub.WebSocket.Enable = true + edgeCoreConfig.Modules.EdgeHub.Quic.Server = net.JoinHostPort(host, strconv.Itoa(constants.DefaultQuicPort)) + edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = opt.CloudCoreIPPort + default: + return fmt.Errorf("unsupported hub of protocol: %s", opt.HubProtocol) + } edgeCoreConfig.Modules.EdgeStream.TunnelServer = net.JoinHostPort(host, strconv.Itoa(constants.DefaultTunnelPort)) if len(opt.Labels) > 0 { diff --git a/keadm/cmd/keadm/app/cmd/util/edgecoreinstaller.go b/keadm/cmd/keadm/app/cmd/util/edgecoreinstaller.go index 94087826f..6c30fc212 100755 --- a/keadm/cmd/keadm/app/cmd/util/edgecoreinstaller.go +++ b/keadm/cmd/keadm/app/cmd/util/edgecoreinstaller.go @@ -29,6 +29,7 @@ import ( "github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2" "github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2/validation" "github.com/kubeedge/kubeedge/pkg/util" + "github.com/kubeedge/viaduct/pkg/api" ) // KubeEdgeInstTool embeds Common struct and contains cloud node ip:port information @@ -45,6 +46,7 @@ type KubeEdgeInstTool struct { CGroupDriver string TarballPath string Labels []string + HubProtocol string } // InstallTools downloads KubeEdge for the specified version @@ -92,8 +94,6 @@ func (ku *KubeEdgeInstTool) createEdgeConfigFiles() error { } edgeCoreConfig := v1alpha2.NewDefaultEdgeCoreConfig() - edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = ku.CloudCoreIP - if ku.EdgeNodeName != "" { edgeCoreConfig.Modules.Edged.HostnameOverride = ku.EdgeNodeName } @@ -124,6 +124,21 @@ func (ku *KubeEdgeInstTool) createEdgeConfigFiles() error { } else { edgeCoreConfig.Modules.EdgeHub.HTTPServer = "https://" + cloudCoreIP + ":10002" } + + switch ku.HubProtocol { + case api.ProtocolTypeQuic: + edgeCoreConfig.Modules.EdgeHub.Quic.Enable = true + edgeCoreConfig.Modules.EdgeHub.WebSocket.Enable = false + edgeCoreConfig.Modules.EdgeHub.Quic.Server = ku.CloudCoreIP + edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = net.JoinHostPort(cloudCoreIP, strconv.Itoa(constants.DefaultWebSocketPort)) + case api.ProtocolTypeWS: + edgeCoreConfig.Modules.EdgeHub.Quic.Enable = false + edgeCoreConfig.Modules.EdgeHub.WebSocket.Enable = true + edgeCoreConfig.Modules.EdgeHub.Quic.Server = net.JoinHostPort(cloudCoreIP, strconv.Itoa(constants.DefaultQuicPort)) + edgeCoreConfig.Modules.EdgeHub.WebSocket.Server = ku.CloudCoreIP + default: + return fmt.Errorf("unsupported hub of protocol: %s", ku.HubProtocol) + } edgeCoreConfig.Modules.EdgeStream.TunnelServer = net.JoinHostPort(cloudCoreIP, strconv.Itoa(constants.DefaultTunnelPort)) if len(ku.Labels) >= 1 { |
