mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-26 05:03:09 +00:00
Merge pull request #24499 from gmarek/load
Automatic merge from submit-queue Add Services to Load test
This commit is contained in:
commit
39f62240db
@ -19,6 +19,7 @@ package e2e
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
@ -26,6 +27,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
client "k8s.io/kubernetes/pkg/client/unversioned"
|
client "k8s.io/kubernetes/pkg/client/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/labels"
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
|
"k8s.io/kubernetes/pkg/util/intstr"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
|
|
||||||
. "github.com/onsi/ginkgo"
|
. "github.com/onsi/ginkgo"
|
||||||
@ -36,9 +38,9 @@ const (
|
|||||||
smallRCSize = 5
|
smallRCSize = 5
|
||||||
mediumRCSize = 30
|
mediumRCSize = 30
|
||||||
bigRCSize = 250
|
bigRCSize = 250
|
||||||
smallRCGroupName = "load-test-small-rc"
|
smallRCGroupName = "load-small-rc"
|
||||||
mediumRCGroupName = "load-test-medium-rc"
|
mediumRCGroupName = "load-medium-rc"
|
||||||
bigRCGroupName = "load-test-big-rc"
|
bigRCGroupName = "load-big-rc"
|
||||||
smallRCBatchSize = 30
|
smallRCBatchSize = 30
|
||||||
mediumRCBatchSize = 5
|
mediumRCBatchSize = 5
|
||||||
bigRCBatchSize = 1
|
bigRCBatchSize = 1
|
||||||
@ -113,6 +115,19 @@ var _ = framework.KubeDescribe("Load capacity", func() {
|
|||||||
It(name, func() {
|
It(name, func() {
|
||||||
totalPods := itArg.podsPerNode * nodeCount
|
totalPods := itArg.podsPerNode * nodeCount
|
||||||
configs = generateRCConfigs(totalPods, itArg.image, itArg.command, c, ns)
|
configs = generateRCConfigs(totalPods, itArg.image, itArg.command, c, ns)
|
||||||
|
var services []*api.Service
|
||||||
|
// Read the environment variable to see if we want to create services
|
||||||
|
createServices := os.Getenv("CREATE_SERVICES")
|
||||||
|
if createServices == "true" {
|
||||||
|
framework.Logf("Creating services")
|
||||||
|
services := generateServicesForConfigs(configs)
|
||||||
|
for _, service := range services {
|
||||||
|
_, err := c.Services(ns).Create(service)
|
||||||
|
framework.ExpectNoError(err)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
framework.Logf("Skipping service creation")
|
||||||
|
}
|
||||||
|
|
||||||
// Simulate lifetime of RC:
|
// Simulate lifetime of RC:
|
||||||
// * create with initial size
|
// * create with initial size
|
||||||
@ -149,6 +164,13 @@ var _ = framework.KubeDescribe("Load capacity", func() {
|
|||||||
// We may want to revisit it in the future.
|
// We may want to revisit it in the future.
|
||||||
deletingTime := time.Duration(totalPods/5) * time.Second
|
deletingTime := time.Duration(totalPods/5) * time.Second
|
||||||
deleteAllRC(configs, deletingTime)
|
deleteAllRC(configs, deletingTime)
|
||||||
|
if createServices == "true" {
|
||||||
|
for _, service := range services {
|
||||||
|
err := c.Services(ns).Delete(service.Name)
|
||||||
|
framework.ExpectNoError(err)
|
||||||
|
}
|
||||||
|
framework.Logf("%v Services created.", len(services))
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -197,6 +219,28 @@ func generateRCConfigsForGroup(c *client.Client, ns, groupName string, size, cou
|
|||||||
return configs
|
return configs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func generateServicesForConfigs(configs []*framework.RCConfig) []*api.Service {
|
||||||
|
services := make([]*api.Service, 0, len(configs))
|
||||||
|
for _, config := range configs {
|
||||||
|
serviceName := config.Name + "-svc"
|
||||||
|
labels := map[string]string{"name": config.Name}
|
||||||
|
service := &api.Service{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: serviceName,
|
||||||
|
},
|
||||||
|
Spec: api.ServiceSpec{
|
||||||
|
Selector: labels,
|
||||||
|
Ports: []api.ServicePort{{
|
||||||
|
Port: 80,
|
||||||
|
TargetPort: intstr.FromInt(80),
|
||||||
|
}},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
services = append(services, service)
|
||||||
|
}
|
||||||
|
return services
|
||||||
|
}
|
||||||
|
|
||||||
func sleepUpTo(d time.Duration) {
|
func sleepUpTo(d time.Duration) {
|
||||||
time.Sleep(time.Duration(rand.Int63n(d.Nanoseconds())))
|
time.Sleep(time.Duration(rand.Int63n(d.Nanoseconds())))
|
||||||
}
|
}
|
||||||
|
@ -51,6 +51,7 @@ kubernetes/server/bin/kube-apiserver \
|
|||||||
--token-auth-file=/srv/kubernetes/known_tokens.csv \
|
--token-auth-file=/srv/kubernetes/known_tokens.csv \
|
||||||
--secure-port=443 \
|
--secure-port=443 \
|
||||||
--basic-auth-file=/srv/kubernetes/basic_auth.csv \
|
--basic-auth-file=/srv/kubernetes/basic_auth.csv \
|
||||||
|
--service-cluster-ip-range=10.0.0.0/16 \
|
||||||
--delete-collection-workers=16 &> /var/log/kube-apiserver.log &
|
--delete-collection-workers=16 &> /var/log/kube-apiserver.log &
|
||||||
|
|
||||||
# kube-contoller-manager now needs running kube-api server to actually start
|
# kube-contoller-manager now needs running kube-api server to actually start
|
||||||
|
Loading…
Reference in New Issue
Block a user