mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Merge pull request #52394 from Lion-Wei/ipvs-nodeport
Automatic merge from submit-queue (batch tested with PRs 50068, 52406, 52394, 48551, 52131). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.. add FlagPersistent flag in nodePort and other situation **What this PR does / why we need it**: For AffinityClientIP service, origin code in ipvs didn't add Persistent flag, which is a bug, so I added it. **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #52626 **Special notes for your reviewer**: add FlagPersistent flag in nodePort and other situation **Release note**: ```release-note NONE ```
This commit is contained in:
		@@ -984,7 +984,6 @@ func (proxier *Proxier) syncProxyRules() {
 | 
			
		||||
			Scheduler: proxier.ipvsScheduler,
 | 
			
		||||
		}
 | 
			
		||||
		// Set session affinity flag and timeout for IPVS service
 | 
			
		||||
		var flags utilipvs.ServiceFlags
 | 
			
		||||
		if svcInfo.sessionAffinityType == api.ServiceAffinityClientIP {
 | 
			
		||||
			serv.Flags |= utilipvs.FlagPersistent
 | 
			
		||||
			serv.Timeout = uint32(svcInfo.stickyMaxAgeSeconds)
 | 
			
		||||
@@ -1062,10 +1061,10 @@ func (proxier *Proxier) syncProxyRules() {
 | 
			
		||||
				Address:   net.ParseIP(externalIP),
 | 
			
		||||
				Port:      uint16(svcInfo.port),
 | 
			
		||||
				Protocol:  string(svcInfo.protocol),
 | 
			
		||||
				Flags:     flags,
 | 
			
		||||
				Scheduler: proxier.ipvsScheduler,
 | 
			
		||||
			}
 | 
			
		||||
			if svcInfo.sessionAffinityType == api.ServiceAffinityClientIP {
 | 
			
		||||
				serv.Flags |= utilipvs.FlagPersistent
 | 
			
		||||
				serv.Timeout = uint32(svcInfo.stickyMaxAgeSeconds)
 | 
			
		||||
			}
 | 
			
		||||
			// There is no need to bind externalIP to dummy interface, so set parameter `bindAddr` to `false`.
 | 
			
		||||
@@ -1123,10 +1122,10 @@ func (proxier *Proxier) syncProxyRules() {
 | 
			
		||||
					Address:   net.ParseIP(ingress.IP),
 | 
			
		||||
					Port:      uint16(svcInfo.port),
 | 
			
		||||
					Protocol:  string(svcInfo.protocol),
 | 
			
		||||
					Flags:     flags,
 | 
			
		||||
					Scheduler: proxier.ipvsScheduler,
 | 
			
		||||
				}
 | 
			
		||||
				if svcInfo.sessionAffinityType == api.ServiceAffinityClientIP {
 | 
			
		||||
					serv.Flags |= utilipvs.FlagPersistent
 | 
			
		||||
					serv.Timeout = uint32(svcInfo.stickyMaxAgeSeconds)
 | 
			
		||||
				}
 | 
			
		||||
				// There is no need to bind LB ingress.IP to dummy interface, so set parameter `bindAddr` to `false`.
 | 
			
		||||
@@ -1173,10 +1172,10 @@ func (proxier *Proxier) syncProxyRules() {
 | 
			
		||||
						Address:   nodeIP,
 | 
			
		||||
						Port:      uint16(svcInfo.nodePort),
 | 
			
		||||
						Protocol:  string(svcInfo.protocol),
 | 
			
		||||
						Flags:     flags,
 | 
			
		||||
						Scheduler: proxier.ipvsScheduler,
 | 
			
		||||
					}
 | 
			
		||||
					if svcInfo.sessionAffinityType == api.ServiceAffinityClientIP {
 | 
			
		||||
						serv.Flags |= utilipvs.FlagPersistent
 | 
			
		||||
						serv.Timeout = uint32(svcInfo.stickyMaxAgeSeconds)
 | 
			
		||||
					}
 | 
			
		||||
					// There is no need to bind Node IP to dummy interface, so set parameter `bindAddr` to `false`.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user