mirror of
https://github.com/labring/sealos.git
synced 2026-09-24 15:46:19 +08:00
feature(main): delete lvscare ipvs and route (#1230)
This commit is contained in:
@@ -59,8 +59,10 @@ func newIPVSCmd() *cobra.Command {
|
||||
care.LVS.TargetIP = net.ParseIP(ip)
|
||||
}
|
||||
logger.Debug("found target route ip is %s", care.LVS.TargetIP.String())
|
||||
if err := care.LVS.SyncRouter(); err != nil {
|
||||
return err
|
||||
if !clean {
|
||||
if err := care.LVS.SyncRouter(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
care.LVS.Clean = true
|
||||
|
||||
@@ -28,6 +28,7 @@ type Interface interface {
|
||||
HostsDelete(ip, domain string) error
|
||||
Hostname(ip string) (string, error)
|
||||
IPVS(ip, vip string, masters []string) error
|
||||
IPVSClean(ip, vip string) error
|
||||
StaticPod(ip, vip, name, image string, masters []string) error
|
||||
Token(ip string) (string, error)
|
||||
IsDocker(ip string) (string, error)
|
||||
@@ -79,6 +80,19 @@ func (s *remote) IPVS(ip, vip string, masters []string) error {
|
||||
}
|
||||
return bashCTLSync(s.clusterName, s.sshInterface, ip, out)
|
||||
}
|
||||
func (s *remote) IPVSClean(ip, vip string) error {
|
||||
var ipvsCommandTemplate = template.Must(template.New("ipvs").Parse(`` +
|
||||
`ipvs --vs {{.vip}} -C`,
|
||||
))
|
||||
data := map[string]interface{}{
|
||||
"vip": vip,
|
||||
}
|
||||
out, err := renderTemplate(ipvsCommandTemplate, data)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return bashCTLSync(s.clusterName, s.sshInterface, ip, out)
|
||||
}
|
||||
|
||||
func (s *remote) StaticPod(ip, vip, name, image string, masters []string) error {
|
||||
var staticPodIPVSCommandTemplate = template.Must(template.New("lvscare").Parse(`` +
|
||||
|
||||
@@ -79,7 +79,9 @@ func (k *KubeadmRuntime) resetNode(node string) error {
|
||||
if err := k.sshCmdAsync(node, removeKubeConfig); err != nil {
|
||||
logger.Error("failed to clean node, exec command %s failed, %v", removeKubeConfig, err)
|
||||
}
|
||||
|
||||
if err := k.execIPVSClean(node); err != nil {
|
||||
logger.Error("failed to clean node route and ipvs failed, %v", err)
|
||||
}
|
||||
if err := k.sshCmdAsync(node, deleteShimCmd); err != nil {
|
||||
logger.Error("failed to clean node, exec command %s failed, %v", deleteShimCmd, err)
|
||||
}
|
||||
|
||||
@@ -98,6 +98,10 @@ func (k *KubeadmRuntime) execIPVS(ip string, masters []string) error {
|
||||
return k.getRemoteInterface().IPVS(ip, k.getVipAndPort(), masters)
|
||||
}
|
||||
|
||||
func (k *KubeadmRuntime) execIPVSClean(ip string) error {
|
||||
return k.getRemoteInterface().IPVSClean(ip, k.getVipAndPort())
|
||||
}
|
||||
|
||||
func (k *KubeadmRuntime) syncNodeIPVSYaml(masterIPs, nodesIPs []string) error {
|
||||
masters := make([]string, 0)
|
||||
for _, master := range masterIPs {
|
||||
|
||||
Reference in New Issue
Block a user