mirror of https://github.com/k3s-io/k3s
rename the gc for terminated pods to "podgc"
parent
6c549ae91f
commit
91de14cf13
|
@ -52,7 +52,6 @@ import (
|
|||
"k8s.io/kubernetes/pkg/controller/framework"
|
||||
"k8s.io/kubernetes/pkg/controller/framework/informers"
|
||||
"k8s.io/kubernetes/pkg/controller/garbagecollector"
|
||||
"k8s.io/kubernetes/pkg/controller/gc"
|
||||
"k8s.io/kubernetes/pkg/controller/job"
|
||||
namespacecontroller "k8s.io/kubernetes/pkg/controller/namespace"
|
||||
nodecontroller "k8s.io/kubernetes/pkg/controller/node"
|
||||
|
@ -60,6 +59,7 @@ import (
|
|||
petset "k8s.io/kubernetes/pkg/controller/petset"
|
||||
"k8s.io/kubernetes/pkg/controller/podautoscaler"
|
||||
"k8s.io/kubernetes/pkg/controller/podautoscaler/metrics"
|
||||
"k8s.io/kubernetes/pkg/controller/podgc"
|
||||
replicaset "k8s.io/kubernetes/pkg/controller/replicaset"
|
||||
replicationcontroller "k8s.io/kubernetes/pkg/controller/replication"
|
||||
resourcequotacontroller "k8s.io/kubernetes/pkg/controller/resourcequota"
|
||||
|
@ -220,7 +220,7 @@ func StartControllers(s *options.CMServer, kubeClient *client.Client, kubeconfig
|
|||
time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter))
|
||||
|
||||
if s.TerminatedPodGCThreshold > 0 {
|
||||
go gc.New(clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "garbage-collector")), ResyncPeriod(s), int(s.TerminatedPodGCThreshold)).
|
||||
go podgc.New(clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "pod-garbage-collector")), ResyncPeriod(s), int(s.TerminatedPodGCThreshold)).
|
||||
Run(wait.NeverStop)
|
||||
time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter))
|
||||
}
|
||||
|
|
|
@ -42,13 +42,13 @@ import (
|
|||
"k8s.io/kubernetes/pkg/controller/daemon"
|
||||
"k8s.io/kubernetes/pkg/controller/deployment"
|
||||
endpointcontroller "k8s.io/kubernetes/pkg/controller/endpoint"
|
||||
"k8s.io/kubernetes/pkg/controller/gc"
|
||||
"k8s.io/kubernetes/pkg/controller/job"
|
||||
namespacecontroller "k8s.io/kubernetes/pkg/controller/namespace"
|
||||
nodecontroller "k8s.io/kubernetes/pkg/controller/node"
|
||||
persistentvolumecontroller "k8s.io/kubernetes/pkg/controller/persistentvolume"
|
||||
"k8s.io/kubernetes/pkg/controller/podautoscaler"
|
||||
"k8s.io/kubernetes/pkg/controller/podautoscaler/metrics"
|
||||
"k8s.io/kubernetes/pkg/controller/podgc"
|
||||
replicaset "k8s.io/kubernetes/pkg/controller/replicaset"
|
||||
replicationcontroller "k8s.io/kubernetes/pkg/controller/replication"
|
||||
resourcequotacontroller "k8s.io/kubernetes/pkg/controller/resourcequota"
|
||||
|
@ -140,7 +140,7 @@ func (s *CMServer) Run(_ []string) error {
|
|||
Run(int(s.ConcurrentRCSyncs), wait.NeverStop)
|
||||
|
||||
if s.TerminatedPodGCThreshold > 0 {
|
||||
go gc.New(clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "garbage-collector")), s.resyncPeriod, int(s.TerminatedPodGCThreshold)).
|
||||
go podgc.New(clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "pod-garbage-collector")), s.resyncPeriod, int(s.TerminatedPodGCThreshold)).
|
||||
Run(wait.NeverStop)
|
||||
}
|
||||
|
||||
|
|
|
@ -14,11 +14,12 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Package gc contains a very simple pod "garbage collector" implementation,
|
||||
// GCController, that runs in the controller manager. If the number of pods
|
||||
// Package podgc contains a very simple pod "garbage collector" implementation,
|
||||
// PodGCController, that runs in the controller manager. If the number of pods
|
||||
// in terminated phases (right now either Failed or Succeeded) surpasses a
|
||||
// configurable threshold, the controller will delete pods in terminated state
|
||||
// until the system reaches the allowed threshold again. The GCController
|
||||
// until the system reaches the allowed threshold again. The PodGCController
|
||||
// prioritizes pods to delete by sorting by creation timestamp and deleting the
|
||||
// oldest objects first. The GCController will not delete non-terminated pods.
|
||||
package gc
|
||||
// oldest objects first. The PodGCController will not delete non-terminated
|
||||
// pods.
|
||||
package podgc
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package gc
|
||||
package podgc
|
||||
|
||||
import (
|
||||
"sort"
|
||||
|
@ -41,7 +41,7 @@ const (
|
|||
gcCheckPeriod = 20 * time.Second
|
||||
)
|
||||
|
||||
type GCController struct {
|
||||
type PodGCController struct {
|
||||
kubeClient clientset.Interface
|
||||
podStore cache.StoreToPodLister
|
||||
podStoreSyncer *framework.Controller
|
||||
|
@ -49,11 +49,11 @@ type GCController struct {
|
|||
threshold int
|
||||
}
|
||||
|
||||
func New(kubeClient clientset.Interface, resyncPeriod controller.ResyncPeriodFunc, threshold int) *GCController {
|
||||
func New(kubeClient clientset.Interface, resyncPeriod controller.ResyncPeriodFunc, threshold int) *PodGCController {
|
||||
if kubeClient != nil && kubeClient.Core().GetRESTClient().GetRateLimiter() != nil {
|
||||
metrics.RegisterMetricAndTrackRateLimiterUsage("gc_controller", kubeClient.Core().GetRESTClient().GetRateLimiter())
|
||||
}
|
||||
gcc := &GCController{
|
||||
gcc := &PodGCController{
|
||||
kubeClient: kubeClient,
|
||||
threshold: threshold,
|
||||
deletePod: func(namespace, name string) error {
|
||||
|
@ -85,13 +85,13 @@ func New(kubeClient clientset.Interface, resyncPeriod controller.ResyncPeriodFun
|
|||
return gcc
|
||||
}
|
||||
|
||||
func (gcc *GCController) Run(stop <-chan struct{}) {
|
||||
func (gcc *PodGCController) Run(stop <-chan struct{}) {
|
||||
go gcc.podStoreSyncer.Run(stop)
|
||||
go wait.Until(gcc.gc, gcCheckPeriod, stop)
|
||||
<-stop
|
||||
}
|
||||
|
||||
func (gcc *GCController) gc() {
|
||||
func (gcc *PodGCController) gc() {
|
||||
terminatedPods, _ := gcc.podStore.List(labels.Everything())
|
||||
terminatedPodCount := len(terminatedPods)
|
||||
sort.Sort(byCreationTimestamp(terminatedPods))
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package gc
|
||||
package podgc
|
||||
|
||||
import (
|
||||
"sync"
|
Loading…
Reference in New Issue