- 18 Jan, 2017 40 commits
-
-
David Ashpole authored
-
Kubernetes Submit Queue authored
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.](https://github.com/GoogleCloudPlatform/compute-image-packages/commit/4d7346f7f59cb88ec934c436bd853b74f4ebbaf5). 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.
-
Kubernetes Submit Queue authored
Automatic merge from submit-queue (batch tested with PRs 40038, 40041, 39036) don't show deleted pull secrets - kubectl describe This patch filters out any image pull secrets that have been deleted when printing the describer output for a service account. Related downstream bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1403376 **Release note**: ```release-note release-note-none ``` @fabianofranz @AdoHe
-
Kubernetes Submit Queue authored
Automatic merge from submit-queue (batch tested with PRs 40038, 40041, 39036) move admission to genericapiserver I disconnected the initialization that was type specific for later assessment. @sttts
-
Kubernetes Submit Queue authored
Automatic merge from submit-queue Start making `k8s.io/client-go` authoritative for generic client packages Right now, client-go has copies of various generic client packages which produces golang type incompatibilities when you want to switch between different kinds of clients. In many cases, there's no reason to have two sets of packages. This pull eliminates the copy for `pkg/client/transport` and makes `client-go` the authoritative copy. I recommend going by commits, the first just synchronizes the client-go code again so that I could test the copy script to make sure it correctly preserves the original package. @kubernetes/sig-api-machinery-misc @lavalamp @sttts
-
Kubernetes Submit Queue authored
Automatic merge from submit-queue Added RBAC for heapster in kubemark Fixes #39952 cc @wojtek-t @gmarek @deads2k
-
deads2k authored
-
deads2k authored
-
deads2k authored
-
deads2k authored
-
Shyam Jeedigunta authored
-
Kubernetes Submit Queue authored
Automatic merge from submit-queue (batch tested with PRs 40008, 40005, 40018) Fix wrong rename pkg/storage.Is{TestFail -> Conflict} -
Kubernetes Submit Queue authored
Automatic merge from submit-queue (batch tested with PRs 40008, 40005, 40018) genericapiserver: move pkg/auth/handlers into filters Move authn filters to the other api related filters.
-
Kubernetes Submit Queue authored
Automatic merge from submit-queue kubeadm: init must validate or generate token before anything else. **What this PR does / why we need it**: `kubeadm init` must validate or generate a token before anything else. Otherwise, if token validation or generation fail, one will need to run `kubeadm reset && systemctl restart kubelet` before re-running `kubeadm init`. **Which issue this PR fixes**: fixes kubernetes/kubeadm#112 **Special notes for your reviewer**: /cc @luxas Tested manually. ### With no token ``` $ sudo ./kubeadm init [kubeadm] WARNING: kubeadm is in alpha, please do not use it for production clusters. [preflight] Running pre-flight checks [init] Using Kubernetes version: v1.5.2 [token-discovery] A token has not been provided, generating one [certificates] Generated Certificate Authority key and certificate. [certificates] Generated API Server key and certificate [certificates] Generated Service Account signing keys [certificates] Created keys and certificates in "/etc/kubernetes/pki" [kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf" [kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf" [apiclient] Created API client, waiting for the control plane to become ready [apiclient] All control plane components are healthy after 7.762803 seconds [apiclient] Waiting for at least one node to register and become ready [apiclient] First node is ready after 1.003148 seconds [apiclient] Creating a test deployment [apiclient] Test deployment succeeded [token-discovery] Using token: 8321b6:a535ba541af7623c [token-discovery] Created the kube-discovery deployment, waiting for it to become ready [token-discovery] kube-discovery is ready after 1.003423 seconds [addons] Created essential addon: kube-proxy [addons] Created essential addon: kube-dns Your Kubernetes master has initialized successfully! You should now deploy a pod network to the cluster. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: http://kubernetes.io/docs/admin/addons/ You can now join any number of machines by running the following on each node: kubeadm join --discovery token://8321b6:a535ba541af7623c@10.142.0.6:9898 ``` ### With invalid token ``` $ sudo ./kubeadm init --discovery token://12345:12345 [kubeadm] WARNING: kubeadm is in alpha, please do not use it for production clusters. [preflight] Running pre-flight checks [init] Using Kubernetes version: v1.5.2 [token-discovery] A token has been provided, validating [&{ID:12345 Secret:12345 Addresses:[]}] token ["12345:12345"] was not of form ["^([a-z0-9]{6})\\:([a-z0-9]{16})$"] ``` ### With valid token ``` $ sudo ./kubeadm ex token generate cd540e:c0e0318e2f4a63b1 $ sudo ./kubeadm init --discovery token://cd540e:c0e0318e2f4a63b1 [kubeadm] WARNING: kubeadm is in alpha, please do not use it for production clusters. [preflight] Running pre-flight checks [init] Using Kubernetes version: v1.5.2 [token-discovery] A token has been provided, validating [&{ID:cd540e Secret:c0e0318e2f4a63b1 Addresses:[]}] [certificates] Generated Certificate Authority key and certificate. [certificates] Generated API Server key and certificate [certificates] Generated Service Account signing keys [certificates] Created keys and certificates in "/etc/kubernetes/pki" [kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf" [kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf" [apiclient] Created API client, waiting for the control plane to become ready [apiclient] All control plane components are healthy after 13.513305 seconds [apiclient] Waiting for at least one node to register and become ready [apiclient] First node is ready after 0.502656 seconds [apiclient] Creating a test deployment [apiclient] Test deployment succeeded [token-discovery] Using token: cd540e:c0e0318e2f4a63b1 [token-discovery] Created the kube-discovery deployment, waiting for it to become ready [token-discovery] kube-discovery is ready after 2.002457 seconds [addons] Created essential addon: kube-proxy [addons] Created essential addon: kube-dns Your Kubernetes master has initialized successfully! You should now deploy a pod network to the cluster. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: http://kubernetes.io/docs/admin/addons/ You can now join any number of machines by running the following on each node: kubeadm join --discovery token://cd540e:c0e0318e2f4a63b1@10.142.0.6:9898 ``` **Release note**: ```release-note NONE ``` -
Dr. Stefan Schimanski authored
-
Kubernetes Submit Queue authored
Automatic merge from submit-queue (batch tested with PRs 39826, 40030) azure disk: restrict length of name **What this PR does / why we need it**: Fixes dynamic disk provisioning on Azure by properly truncating the disk name to conform to the Azure API spec. **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes # n/a **Special notes for your reviewer**: n/a **Release note**: ```release-note azure disk: restrict name length for Azure specifications ``` cc: @rootfs
-
Kubernetes Submit Queue authored
Automatic merge from submit-queue Made tracing of calls and container lifecycle steps in FakeDockerClient optional Fixes #39717 Slightly refactored the FakeDockerClient code and made tracing optional (but enabled by default). @yujuhong @Random-Liu
-
Kubernetes Submit Queue authored
Automatic merge from submit-queue Curating Owners: pkg/volume cc @jsafrane @spothanis @agonzalezro @justinsb @johscheuer @simonswine @nelcy @pmorie @quofelix @sdminonne @thockin @saad-ali @rootfs In an effort to expand the existing pool of reviewers and establish a two-tiered review process (first someone lgtms and then someone experienced in the project approves), we are adding new reviewers to existing owners files. If You Care About the Process: ------------------------------ We did this by algorithmically figuring out who’s contributed code to the project and in what directories. Unfortunately, that doesn’t work well: people that have made mechanical code changes (e.g change the copyright header across all directories) end up as reviewers in lots of places. Instead of using pure commit data, we generated an excessively large list of reviewers and pruned based on all time commit data, recent commit data and review data (number of PRs commented on). At this point we have a decent list of reviewers, but it needs one last pass for fine tuning. Also, see https://github.com/kubernetes/contrib/issues/1389. TLDR: ----- As an owner of a sig/directory and a leader of the project, here’s what we need from you: 1. Use PR https://github.com/kubernetes/kubernetes/pull/35715 as an example. 2. The pull-request is made editable, please edit the `OWNERS` file to remove the names of people that shouldn't be reviewing code in the future in the **reviewers** section. You probably do NOT need to modify the **approvers** section. Names asre sorted by relevance, using some secret statistics. 3. Notify me if you want some OWNERS file to be removed. Being an approver or reviewer of a parent directory makes you a reviewer/approver of the subdirectories too, so not all OWNERS files may be necessary. 4. Please use ALIAS if you want to use the same list of people over and over again (don't hesitate to ask me for help, or use the pull-request above as an example)
-
Kubernetes Submit Queue authored
Automatic merge from submit-queue OWNERS: Create sig-node alias Create an alias group for sig-node This will be used by `pkg/kubelet/OWNERS` and `test/e2e_node/OWNERS`. **Release note**: NONE
-
Saad Ali authored
-
Saad Ali authored
-
Saad Ali authored
-
Saad Ali authored
-
Saad Ali authored
-
Saad Ali authored
-
Saad Ali authored
-
Saad Ali authored
-
Saad Ali authored
-
Saad Ali authored
-
Saad Ali authored
-
Saad Ali authored
-
Antoine Pelisse authored
Create an alias group for sig-node
-
Saad Ali authored
-
Saad Ali authored
-
Saad Ali authored
-
Saad Ali authored
-
Saad Ali authored
-
Kubernetes Submit Queue authored
Automatic merge from submit-queue Enable streaming proxy redirects by default (beta) Prerequisite to moving CRI to Beta. I'd like to enable this early in our 1.6 cycle to get plenty of test coverage before release. @yujuhong @liggitt ```release-note Follow redirects for streaming requests (exec/attach/port-forward) in the apiserver by default (alpha -> beta). ```
-
Saad Ali authored
-
Saad Ali authored
-