Commit 2b4830a0 authored by Daniel Holbach's avatar Daniel Holbach
Browse files

make markdownlint happier

parent 688ba8ef
# kured - Kubernetes Reboot Daemon
<img src="https://github.com/weaveworks/kured/raw/master/img/logo.png" align="right"/> <img src="https://github.com/weaveworks/kured/raw/master/img/logo.png" align="right"/>
* [Introduction](#introduction) * [Introduction](#introduction)
* [Kubernetes & OS Compatibility](#kubernetes-&-os-compatibility) * [Kubernetes & OS Compatibility](#kubernetes-&-os-compatibility)
* [Installation](#installation) * [Installation](#installation)
* [Configuration](#configuration) * [Configuration](#configuration)
* [Reboot Sentinel File & Period](#reboot-sentinel-file-&-period) * [Reboot Sentinel File & Period](#reboot-sentinel-file-&-period)
* [Setting a schedule](#setting-a-schedule) * [Setting a schedule](#setting-a-schedule)
* [Blocking Reboots via Alerts](#blocking-reboots-via-alerts) * [Blocking Reboots via Alerts](#blocking-reboots-via-alerts)
* [Blocking Reboots via Pods](#blocking-reboots-via-pods) * [Blocking Reboots via Pods](#blocking-reboots-via-pods)
* [Prometheus Metrics](#prometheus-metrics) * [Prometheus Metrics](#prometheus-metrics)
* [Slack Notifications](#slack-notifications) * [Slack Notifications](#slack-notifications)
* [Overriding Lock Configuration](#overriding-lock-configuration) * [Overriding Lock Configuration](#overriding-lock-configuration)
* [Operation](#operation) * [Operation](#operation)
* [Testing](#testing) * [Testing](#testing)
* [Disabling Reboots](#disabling-reboots) * [Disabling Reboots](#disabling-reboots)
* [Manual Unlock](#manual-unlock) * [Manual Unlock](#manual-unlock)
* [Automatic Unlock](#automatic-unlock) * [Automatic Unlock](#automatic-unlock)
* [Building](#building) * [Building](#building)
* [Frequently Asked/Anticipated Questions](#frequently-askedanticipated-questions) * [Frequently Asked/Anticipated Questions](#frequently-askedanticipated-questions)
...@@ -47,7 +49,7 @@ compatibility of one minor version between client and server: ...@@ -47,7 +49,7 @@ compatibility of one minor version between client and server:
| 1.3.0 | 1.15.10 | v12.0.0 | release-1.15 | 1.15.x, 1.16.x, 1.17.x | | 1.3.0 | 1.15.10 | v12.0.0 | release-1.15 | 1.15.x, 1.16.x, 1.17.x |
| 1.2.0 | 1.13.6 | v10.0.0 | release-1.13 | 1.12.x, 1.13.x, 1.14.x | | 1.2.0 | 1.13.6 | v10.0.0 | release-1.13 | 1.12.x, 1.13.x, 1.14.x |
| 1.1.0 | 1.12.1 | v9.0.0 | release-1.12 | 1.11.x, 1.12.x, 1.13.x | | 1.1.0 | 1.12.1 | v9.0.0 | release-1.12 | 1.11.x, 1.12.x, 1.13.x |
| 1.0.0 | 1.7.6 | v4.0.0 | release-1.7 | 1.6.x, 1.7.x, 1.8.x | | 1.0.0 | 1.7.6 | v4.0.0 | release-1.7 | 1.6.x, 1.7.x, 1.8.x |
See the [release notes](https://github.com/weaveworks/kured/releases) See the [release notes](https://github.com/weaveworks/kured/releases)
for specific version compatibility information, including which for specific version compatibility information, including which
...@@ -61,7 +63,7 @@ Versions >=1.1.0 enter the host mount namespace to invoke ...@@ -61,7 +63,7 @@ Versions >=1.1.0 enter the host mount namespace to invoke
To obtain a default installation without Prometheus alerting interlock To obtain a default installation without Prometheus alerting interlock
or Slack notifications: or Slack notifications:
``` ```console
kubectl apply -f https://github.com/weaveworks/kured/releases/download/1.3.0/kured-1.3.0-dockerhub.yaml kubectl apply -f https://github.com/weaveworks/kured/releases/download/1.3.0/kured-1.3.0-dockerhub.yaml
``` ```
...@@ -72,7 +74,7 @@ edit it in accordance with the following section before application. ...@@ -72,7 +74,7 @@ edit it in accordance with the following section before application.
The following arguments can be passed to kured via the daemonset pod template: The following arguments can be passed to kured via the daemonset pod template:
``` ```console
Flags: Flags:
--annotation-ttl time force clean annotation after this ammount of time (default 0, disabled) --annotation-ttl time force clean annotation after this ammount of time (default 0, disabled)
--alert-filter-regexp regexp.Regexp alert names to ignore when checking for active alerts --alert-filter-regexp regexp.Regexp alert names to ignore when checking for active alerts
...@@ -110,11 +112,11 @@ reboots to predictable schedules. Use `--reboot-days`, `--start-time`, ...@@ -110,11 +112,11 @@ reboots to predictable schedules. Use `--reboot-days`, `--start-time`,
`--end-time`, and `--time-zone` to set a schedule. For example, business `--end-time`, and `--time-zone` to set a schedule. For example, business
hours on the west coast USA can be specified with: hours on the west coast USA can be specified with:
``` ```console
--reboot-days mon,tue,wed,thu,fri --reboot-days mon,tue,wed,thu,fri
--start-time 9am --start-time 9am
--end-time 5pm --end-time 5pm
--time-zone America/Los_Angeles --time-zone America/Los_Angeles
``` ```
Times can be formatted in numerous ways, including `5pm`, `5:00pm` `17:00`, Times can be formatted in numerous ways, including `5pm`, `5:00pm` `17:00`,
...@@ -130,14 +132,14 @@ You may find it desirable to block automatic node reboots when there ...@@ -130,14 +132,14 @@ You may find it desirable to block automatic node reboots when there
are active alerts - you can do so by providing the URL of your are active alerts - you can do so by providing the URL of your
Prometheus server: Prometheus server:
``` ```console
--prometheus-url=http://prometheus.monitoring.svc.cluster.local --prometheus-url=http://prometheus.monitoring.svc.cluster.local
``` ```
By default the presence of *any* active (pending or firing) alerts By default the presence of *any* active (pending or firing) alerts
will block reboots, however you can ignore specific alerts: will block reboots, however you can ignore specific alerts:
``` ```console
--alert-filter-regexp=^(RebootRequired|AnotherBenignAlert|...$ --alert-filter-regexp=^(RebootRequired|AnotherBenignAlert|...$
``` ```
...@@ -149,14 +151,14 @@ filter. ...@@ -149,14 +151,14 @@ filter.
You can also block reboots of an _individual node_ when specific pods You can also block reboots of an _individual node_ when specific pods
are scheduled on it: are scheduled on it:
``` ```console
--blocking-pod-selector=runtime=long,cost=expensive --blocking-pod-selector=runtime=long,cost=expensive
``` ```
Since label selector strings use commas to express logical 'and', you can Since label selector strings use commas to express logical 'and', you can
specify this parameter multiple times for 'or': specify this parameter multiple times for 'or':
``` ```console
--blocking-pod-selector=runtime=long,cost=expensive --blocking-pod-selector=runtime=long,cost=expensive
--blocking-pod-selector=name=temperamental --blocking-pod-selector=name=temperamental
``` ```
...@@ -174,7 +176,7 @@ running job or a known temperamental pod on a node will stop it rebooting. ...@@ -174,7 +176,7 @@ running job or a known temperamental pod on a node will stop it rebooting.
Each kured pod exposes a single gauge metric (`:8080/metrics`) that Each kured pod exposes a single gauge metric (`:8080/metrics`) that
indicates the presence of the sentinel file: indicates the presence of the sentinel file:
``` ```console
# HELP kured_reboot_required OS requires reboot due to software updates. # HELP kured_reboot_required OS requires reboot due to software updates.
# TYPE kured_reboot_required gauge # TYPE kured_reboot_required gauge
kured_reboot_required{node="ip-xxx-xxx-xxx-xxx.ec2.internal"} 0 kured_reboot_required{node="ip-xxx-xxx-xxx-xxx.ec2.internal"} 0
...@@ -184,7 +186,7 @@ The purpose of this metric is to power an alert which will summon an ...@@ -184,7 +186,7 @@ The purpose of this metric is to power an alert which will summon an
operator if the cluster cannot reboot itself automatically for a operator if the cluster cannot reboot itself automatically for a
prolonged period: prolonged period:
``` ```console
# Alert if a reboot is required for any machines. Acts as a failsafe for the # Alert if a reboot is required for any machines. Acts as a failsafe for the
# reboot daemon, which will not reboot nodes if there are pending alerts save # reboot daemon, which will not reboot nodes if there are pending alerts save
# this one. # this one.
...@@ -208,7 +210,7 @@ probe for active alerts before rebooting, be sure to specify ...@@ -208,7 +210,7 @@ probe for active alerts before rebooting, be sure to specify
If you specify a Slack hook via `--slack-hook-url`, kured will notify If you specify a Slack hook via `--slack-hook-url`, kured will notify
you immediately prior to rebooting a node: you immediately prior to rebooting a node:
<img src="https://github.com/weaveworks/kured/raw/master/img/slack-notification.png"/> ![Notification](img/slack-notification.png)
We recommend setting `--slack-username` to be the name of the We recommend setting `--slack-username` to be the name of the
environment, e.g. `dev` or `prod`. environment, e.g. `dev` or `prod`.
...@@ -234,7 +236,7 @@ if you have, you will have to adjust the commands accordingly. ...@@ -234,7 +236,7 @@ if you have, you will have to adjust the commands accordingly.
You can test your configuration by provoking a reboot on a node: You can test your configuration by provoking a reboot on a node:
``` ```console
sudo touch /var/run/reboot-required sudo touch /var/run/reboot-required
``` ```
...@@ -243,7 +245,7 @@ sudo touch /var/run/reboot-required ...@@ -243,7 +245,7 @@ sudo touch /var/run/reboot-required
If you need to temporarily stop kured from rebooting any nodes, you If you need to temporarily stop kured from rebooting any nodes, you
can take the lock manually: can take the lock manually:
``` ```console
kubectl -n kube-system annotate ds kured weave.works/kured-node-lock='{"nodeID":"manual"}' kubectl -n kube-system annotate ds kured weave.works/kured-node-lock='{"nodeID":"manual"}'
``` ```
...@@ -255,9 +257,10 @@ In exceptional circumstances, such as a node experiencing a permanent ...@@ -255,9 +257,10 @@ In exceptional circumstances, such as a node experiencing a permanent
failure whilst rebooting, manual intervention may be required to failure whilst rebooting, manual intervention may be required to
remove the cluster lock: remove the cluster lock:
``` ```console
kubectl -n kube-system annotate ds kured weave.works/kured-node-lock- kubectl -n kube-system annotate ds kured weave.works/kured-node-lock-
``` ```
> NB the `-` at the end of the command is important - it instructs > NB the `-` at the end of the command is important - it instructs
> `kubectl` to remove that annotation entirely. > `kubectl` to remove that annotation entirely.
...@@ -278,13 +281,13 @@ repository: ...@@ -278,13 +281,13 @@ repository:
**Building outside $GOPATH:** **Building outside $GOPATH:**
``` ```console
make make
``` ```
**Building inside $GOPATH:** **Building inside $GOPATH:**
``` ```console
GO111MODULE=on make GO111MODULE=on make
``` ```
...@@ -307,10 +310,10 @@ versioned manifest from the [release page](https://github.com/weaveworks/kured/r ...@@ -307,10 +310,10 @@ versioned manifest from the [release page](https://github.com/weaveworks/kured/r
If you have any questions about, feedback for or problems with `kured`: If you have any questions about, feedback for or problems with `kured`:
- Invite yourself to the <a href="https://slack.weave.works/" target="_blank">Weave Users Slack</a>. * Invite yourself to the <a href="https://slack.weave.works/" target="_blank">Weave Users Slack</a>.
- Ask a question on the [#kured](https://weave-community.slack.com/messages/kured/) slack channel. * Ask a question on the [#kured](https://weave-community.slack.com/messages/kured/) slack channel.
- [File an issue](https://github.com/weaveworks/kured/issues/new). * [File an issue](https://github.com/weaveworks/kured/issues/new).
- Join us in [our monthly meeting](https://docs.google.com/document/d/1bsHTjHhqaaZ7yJnXF6W8c89UB_yn-OoSZEmDnIP34n8/edit#), * Join us in [our monthly meeting](https://docs.google.com/document/d/1bsHTjHhqaaZ7yJnXF6W8c89UB_yn-OoSZEmDnIP34n8/edit#),
every fourth Wednesday of the month at 16:00 UTC. every fourth Wednesday of the month at 16:00 UTC.
Your feedback is always welcome! Your feedback is always welcome!
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment