You are looking at the documentation of a prior release. To read the documentation of the latest release, please
visit here.
New to Kubed? Please start here.
Installation Guide
Create Cluster Config
Before you can install Kubed, you need a cluster config for Kubed. Cluster config is defined in YAML format. You find an example config in ./hack/deploy/config.yaml.
$ cat ./hack/deploy/config.yaml
apiServer:
address: :8080
enableReverseIndex: true
enableSearchIndex: true
clusterName: unicorn
enableConfigSyncer: true
eventForwarder:
ingressAdded:
handle: true
nodeAdded:
handle: true
receivers:
- notifier: Mailgun
to:
- ops@example.com
storageAdded:
handle: true
warningEvents:
handle: true
namespaces:
- kube-system
janitors:
- elasticsearch:
endpoint: http://elasticsearch-logging.kube-system:9200
logIndexPrefix: logkubed-
kind: Elasticsearch
ttl: 2160h0m0s
- influxdb:
endpoint: https://monitoring-influxdb.kube-system:8086
kind: InfluxDB
ttl: 2160h0m0s
notifierSecretName: notifier-config
recycleBin:
handleUpdates: false
path: /tmp/kubed/trash
receivers:
- notifier: Mailgun
to:
- ops@example.com
ttl: 168h0m0s
snapshotter:
gcs:
bucket: restic
prefix: minikube
sanitize: true
schedule: '@every 6h'
storageSecretName: snap-secret
To understand the various configuration options, check Kubed tutorials. Once you are satisfied with the configuration, create a Secret with the Kubed cluster config under config.yaml
key.
You may have to create another Secret for notifiers, usually called notifier-config
. If you are storing cluster snapshots in cloud storage, you have to create another Secret to provide cloud credentials.
Generate Config using script
If you are familiar with GO, you can use the ./hack/config/main.go script to generate a cluster config. Open this file in your favorite editor, update the config returned from #CreateClusterConfig()
method. Then run the script to generate updated config in ./hack/deploy/config.yaml.
go run ./hack/config/main.go
Verifying Cluster Config
Kubed includes a check command to verify a cluster config. Download the pre-built binary from appscode/kubed Github releases and put the binary to some directory in your PATH
.
$ kubed check --clusterconfig=./hack/deploy/config.yaml
Cluster config was parsed successfully.
Using YAML
Kubed can be installed using YAML files includes in the /hack/deploy folder.
# Install without RBAC roles
$ kubectl apply -f https://raw.githubusercontent.com/appscode/kubed/0.5.0/hack/deploy/without-rbac.yaml
# Install with RBAC roles
$ kubectl apply -f https://raw.githubusercontent.com/appscode/kubed/0.5.0/hack/deploy/with-rbac.yaml
Using Helm
Kubed can be installed via Helm using the chart included in this repository. To install the chart with the release name my-release
:
$ helm repo update
$ helm install stable/kubed --name my-release
To see the detailed configuration options, visit here.
Verify installation
To check if Kubed operator pods have started, run the following command:
$ kubectl get pods --all-namespaces -l app=kubed --watch
Once the operator pods are running, you can cancel the above command by typing Ctrl+C
.
Update Cluster Config
If you would like to update cluster config, update the kubed-config
Secret and restart Kubed operator pod(s).