Commit Graph

232 Commits

Author SHA1 Message Date
Shyam Jeedigunta
d2fadbe30f Refactored kubemark code into provider-specific and provider-independent parts 2017-01-19 15:34:13 +01:00
Kubernetes Submit Queue
da7d17c8dd Merge pull request #39951 from shyamjvs/fix-kubemark-npd
Automatic merge from submit-queue (batch tested with PRs 40081, 39951)

Passing correct master address to kubemark NPD & authenticating+authorizing it with apiserver

Fixes #39245 
Fixes https://github.com/kubernetes/node-problem-detector/issues/50

Added RBAC for npd and fixed issue with the npd falling back to inClusterConfig.

cc @kubernetes/sig-scalability-misc @wojtek-t @gmarek
2017-01-19 05:01:04 -08:00
Kubernetes Submit Queue
b29d9cdbcf Merge pull request #39898 from ixdy/bazel-release-tars
Automatic merge from submit-queue

Build release tars using bazel

**What this PR does / why we need it**: builds equivalents of the various kubernetes release tarballs, solely using bazel.

For example, you can now do
```console
$ make bazel-release
$ hack/e2e.go -v -up -test -down
```

**Special notes for your reviewer**: this is currently dependent on 3b29803eb5, which I have yet to turn into a pull request, since I'm still trying to figure out if this is the best approach.

Basically, the issue comes up with the way we generate the various server docker image tarfiles and load them on nodes:
* we `md5sum` the binary being encapsulated (e.g. kube-proxy) and save that to `$binary.docker_tag` in the server tarball
* we then build the docker image and tag using that md5sum (e.g. `gcr.io/google_containers/kube-proxy:$MD5SUM`)
* we `docker save` this image, which embeds the full tag in the `$binary.tar` file.
* on cluster startup, we `docker load` these tarballs, which are loaded with the tag that we'd created at build time. the nodes then use the `$binary.docker_tag` file to find the right image.

With the current bazel `docker_build` rule, the tag isn't saved in the docker image tar, so the node is unable to find the image after `docker load`ing it.

My changes to the rule save the tag in the docker image tar, though I don't know if there are subtle issues with it. (Maybe we want to only tag when `--stamp` is given?)

Also, the docker images produced by bazel have the timestamp set to the unix epoch, which is not great for debugging. Might be another thing to change with a `--stamp`.

Long story short, we probably need to follow up with bazel folks on the best way to solve this problem.

**Release note**:

```release-note
NONE
```
2017-01-18 14:24:48 -08:00
Shyam Jeedigunta
cc78a3f428 Passing correct master address to kubemark NPD & authenticating+authorizing it with apiserver 2017-01-18 18:23:23 +01:00
Kubernetes Submit Queue
6dfe5c49f6 Merge pull request #38865 from vwfs/ext4_no_lazy_init
Automatic merge from submit-queue

Enable lazy initialization of ext3/ext4 filesystems

**What this PR does / why we need it**: It enables lazy inode table and journal initialization in ext3 and ext4.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #30752, fixes #30240

**Release note**:
```release-note
Enable lazy inode table and journal initialization for ext3 and ext4
```

**Special notes for your reviewer**:
This PR removes the extended options to mkfs.ext3/mkfs.ext4, so that the defaults (enabled) for lazy initialization are used.

These extended options come from a script that was historically located at */usr/share/google/safe_format_and_mount* and later ported to GO so this dependency to the script could be removed. After some search, I found the original script here: https://github.com/GoogleCloudPlatform/compute-image-packages/blob/legacy/google-startup-scripts/usr/share/google/safe_format_and_mount

Checking the history of this script, I found the commit [Disable lazy init of inode table and journal.](4d7346f7f5). This one introduces the extended flags with this description:
```
Now that discard with guaranteed zeroing is supported by PD,
initializing them is really fast and prevents perf from being affected
when the filesystem is first mounted.
```

The problem is, that this is not true for all cloud providers and all disk types, e.g. Azure and AWS. I only tested with magnetic disks on Azure and AWS, so maybe it's different for SSDs on these cloud providers. The result is that this performance optimization dramatically increases the time needed to format a disk in such cases.

When mkfs.ext4 is told to not lazily initialize the inode tables and the check for guaranteed zeroing on discard fails, it falls back to a very naive implementation that simply loops and writes zeroed buffers to the disk. Performance on this highly depends on free memory and also uses up all this free memory for write caching, reducing performance of everything else in the system. 

As of https://github.com/kubernetes/kubernetes/issues/30752, there is also something inside kubelet that somehow degrades performance of all this. It's however not exactly known what it is but I'd assume it has something to do with cgroups throttling IO or memory. 

I checked the kernel code for lazy inode table initialization. The nice thing is, that the kernel also does the guaranteed zeroing on discard check. If it is guaranteed, the kernel uses discard for the lazy initialization, which should finish in a just few seconds. If it is not guaranteed, it falls back to using *bio*s, which does not require the use of the write cache. The result is, that free memory is not required and not touched, thus performance is maxed and the system does not suffer.

As the original reason for disabling lazy init was a performance optimization and the kernel already does this optimization by default (and in a much better way), I'd suggest to completely remove these flags and rely on the kernel to do it in the best way.
2017-01-18 09:09:52 -08:00
Shyam Jeedigunta
9b0d8b9747 Added RBAC for heapster in kubemark 2017-01-18 13:47:08 +01:00
Shyam Jeedigunta
491c26feca Fix RBAC role for kube-proxy in Kubemark 2017-01-17 11:39:00 +01:00
Jeff Grafton
bc4b6ac397 Build release tarballs in bazel and add make bazel-release rule 2017-01-13 16:17:44 -08:00
Aleksandra Malinowska
043e809b8f update heapster version to 1.3.0-beta.0 2017-01-12 13:42:31 +01:00
Shyam Jeedigunta
312e2f85a6 run-gcloud-compute-with-retries in kubemark handles resource already exists case 2017-01-06 23:21:15 +01:00
Kubernetes Submit Queue
85ad3045be Merge pull request #39349 from shyamjvs/rbac-for-kubemark
Automatic merge from submit-queue

Updated kubemark with RBAC for controllers, proxy and kubelet

Fixes issue #39244 

@kubernetes/sig-scalability-misc @wojtek-t @gmarek
2017-01-06 13:42:54 -08:00
Shyam Jeedigunta
ce8c207328 Updated kubemark with RBAC for controller-manager, kubecfg, kubelet and proxy 2017-01-06 08:54:54 +01:00
Kubernetes Submit Queue
f4a8713088 Merge pull request #36229 from wojtek-t/bump_etcd_version
Automatic merge from submit-queue (batch tested with PRs 36229, 39450)

Bump etcd to 3.0.14 and switch to v3 API in etcd.

Ref #20504

**Release note**:

```release-note
Switch default etcd version to 3.0.14.
Switch default storage backend flag in apiserver to `etcd3` mode.
```
2017-01-04 17:36:06 -08:00
Shyam Jeedigunta
ac30fb28bd Fixing 'systemd restart docker' command in kubemark master 2016-12-21 11:46:33 +01:00
Shyam Jeedigunta
7e12fd4bfd Added 'hollow'-node-problem-detector to hollow-nodes in kubemark 2016-12-20 12:04:24 +01:00
Wojciech Tyczynski
76f115a8ee Bump etcd to 3.0.14 2016-12-20 11:57:45 +01:00
Shyam Jeedigunta
9051462497 Migrated kubemark master to GCI from Debian. 2016-12-19 13:51:56 +01:00
Alexander Block
13a2bc8afb Enable lazy initialization of ext3/ext4 filesystems 2016-12-18 11:08:51 +01:00
Kubernetes Submit Queue
2e2661c403 Merge pull request #38803 from gmarek/kubemark-etcd-flags
Automatic merge from submit-queue

Kubemark etcd flags

Fix for #38770.

cc @shyamjvs
2016-12-15 05:38:38 -08:00
gmarek
40907930a3 Fix the kubemark fix 2016-12-15 10:26:39 +01:00
Shyam Jeedigunta
10b39d9dd7 Fixed kubemark to work when ETCD_X flags are set 2016-12-14 18:13:31 +01:00
aaronxu
3b20730620 spell check for test/* 2016-12-14 06:03:00 -08:00
Shyam Jeedigunta
f7ce6a7d10 On kubemark master, kubelet now runs as a supervisord process and all master components as pods 2016-12-12 13:56:07 +01:00
Wojciech Tyczynski
9439453527 Increase single logfile size in kubemark 2016-12-12 11:18:20 +01:00
Shyam Jeedigunta
06ce9ae479 Moved start-kubemark-master.sh from test/kubemark/ to test/kubemark/resources/ 2016-12-07 18:15:24 +01:00
Wojciech Tyczynski
aab227dd42 Collect controller-manager logs from kubemark 2016-12-06 16:30:52 +01:00
Hongchao Deng
f9bc3ac419 kubemark: minor fix start-kubemark.sh 2016-11-22 18:00:23 -08:00
gmarek
4356cb633d Revert "Merge pull request #36065 from kubernetes/revert-35918-supervisor"
This reverts commit a4ee3ed026, reversing
changes made to 8c90bc35e2.
2016-11-22 09:46:48 +01:00
gmarek
15471488ba Update start-kubemark-master to correctly work in case of master-components restart 2016-11-21 15:40:58 +01:00
Wojciech Tyczynski
9ccddb9b7d Revert "Add log rotation to kubemark" 2016-11-21 14:55:52 +01:00
gmarek
3d9f002ebd Add commented local testing command in kubemark/run-e2e-tests.sh 2016-11-21 10:00:54 +01:00
gmarek
87f87206bc Pass GCLOUD_COMMON_ARGS do disk attach in Kubemark 2016-11-21 09:04:04 +01:00
Wojciech Tyczynski
a96dd63367 Add log rotation to kubemark 2016-11-18 16:19:32 +01:00
gmarek
3fc177ff7c Allow storing events on a separate disk 2016-11-18 13:19:48 +01:00
gmarek
08d60999fc Allow passing custom list of admission plugins to kubemark 2016-11-17 12:32:41 +01:00
gmarek
7439a956ef Add ServiceAccounts to Kubemark 2016-11-15 16:03:48 +01:00
Wojciech Tyczynski
5ffda62588 Fix non-default etcd image handling in kubemark 2016-11-08 08:29:39 +01:00
Wojciech Tyczynski
314c4c2811 Revert "Make master components in kubemark monitored by supervisord" 2016-11-02 14:43:09 +01:00
gmarek
3e78f4feb8 Make master components in kubemark monitored by supervisord 2016-10-31 19:44:18 +01:00
Wojciech Tyczynski
42d8a13229 Fix conflict in kubemark 2016-10-31 08:34:33 +01:00
Kubernetes Submit Queue
569da52204 Merge pull request #35708 from wojtek-t/rename_test_etcd_version
Automatic merge from submit-queue

Rename TEST_ETCD_VERSION to ETCD_VERSION

Ref #20504
2016-10-29 05:46:51 -07:00
Wojciech Tyczynski
6a4a4bcf36 Fix wrong flag to etcd in kubemark 2016-10-28 15:54:15 +02:00
Wojciech Tyczynski
7ee7b55c5e Rename TEST_ETCD_VERSION to ETCD_VERSION 2016-10-28 13:56:59 +02:00
Wojciech Tyczynski
137d2398a8 Increase backend-quota-bytes in kubemark 2016-10-28 09:14:57 +02:00
Kubernetes Submit Queue
cbe65701a2 Merge pull request #35104 from gmarek/root_disk
Automatic merge from submit-queue

Allow setting master root disk size in kubemark
2016-10-19 04:25:06 -07:00
gmarek
16d8e6400e Allow setting master root disk size in kubemark 2016-10-19 12:37:17 +02:00
gmarek
cde44bc07c Mount disk in kubemark earlier 2016-10-19 12:11:10 +02:00
gmarek
6b7ddc56d3 Mount master-pd in kubemark 2016-10-18 11:25:17 +02:00
Wojciech Tyczynski
3215e8535a Extend logging for kubemark failures debugging 2016-09-30 14:29:29 +02:00
Wojciech Tyczynski
8abf3c1600 Make it possible to set etcd version in kubemark 2016-09-27 13:13:29 +02:00