feature(main): delete lvscare ipvs and route (#1230)

This commit is contained in:
cuisongliu
2022-07-01 22:52:39 +08:00
committed by GitHub
parent 9f2fbd822f
commit 7b813306ee
4 changed files with 25 additions and 3 deletions
+4 -2
View File
@@ -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
+14
View File
@@ -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(`` +
+3 -1
View File
@@ -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)
}
+4
View File
@@ -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 {