Add heapster, dashboard, and CLUO addons
This commit is contained in:
parent
5b2275872c
commit
564c0160bf
|
@ -0,0 +1,56 @@
|
||||||
|
apiVersion: extensions/v1beta1
|
||||||
|
kind: DaemonSet
|
||||||
|
metadata:
|
||||||
|
name: container-linux-update-agent
|
||||||
|
namespace: kube-system
|
||||||
|
spec:
|
||||||
|
updateStrategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
rollingUpdate:
|
||||||
|
maxUnavailable: 1
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: container-linux-update-agent
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: update-agent
|
||||||
|
image: quay.io/coreos/container-linux-update-operator:v0.3.1
|
||||||
|
command:
|
||||||
|
- "/bin/update-agent"
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /var/run/dbus
|
||||||
|
name: var-run-dbus
|
||||||
|
- mountPath: /etc/coreos
|
||||||
|
name: etc-coreos
|
||||||
|
- mountPath: /usr/share/coreos
|
||||||
|
name: usr-share-coreos
|
||||||
|
- mountPath: /etc/os-release
|
||||||
|
name: etc-os-release
|
||||||
|
env:
|
||||||
|
# read by update-agent as the node name to manage reboots for
|
||||||
|
- name: UPDATE_AGENT_NODE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: spec.nodeName
|
||||||
|
- name: POD_NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
tolerations:
|
||||||
|
- key: node-role.kubernetes.io/master
|
||||||
|
operator: Exists
|
||||||
|
effect: NoSchedule
|
||||||
|
volumes:
|
||||||
|
- name: var-run-dbus
|
||||||
|
hostPath:
|
||||||
|
path: /var/run/dbus
|
||||||
|
- name: etc-coreos
|
||||||
|
hostPath:
|
||||||
|
path: /etc/coreos
|
||||||
|
- name: usr-share-coreos
|
||||||
|
hostPath:
|
||||||
|
path: /usr/share/coreos
|
||||||
|
- name: etc-os-release
|
||||||
|
hostPath:
|
||||||
|
path: /etc/os-release
|
|
@ -0,0 +1,22 @@
|
||||||
|
apiVersion: extensions/v1beta1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: container-linux-update-operator
|
||||||
|
namespace: kube-system
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: container-linux-update-operator
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: update-operator
|
||||||
|
image: quay.io/coreos/container-linux-update-operator:v0.3.1
|
||||||
|
command:
|
||||||
|
- "/bin/update-operator"
|
||||||
|
env:
|
||||||
|
- name: POD_NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
|
@ -0,0 +1,32 @@
|
||||||
|
apiVersion: extensions/v1beta1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: kubernetes-dashboard
|
||||||
|
namespace: kube-system
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
name: kubernetes-dashboard
|
||||||
|
phase: prod
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: kubernetes-dashboard
|
||||||
|
image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.6.1
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 9090
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 300Mi
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 100Mi
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: 9090
|
||||||
|
initialDelaySeconds: 30
|
||||||
|
timeoutSeconds: 30
|
|
@ -0,0 +1,15 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: kubernetes-dashboard
|
||||||
|
namespace: kube-system
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
selector:
|
||||||
|
name: kubernetes-dashboard
|
||||||
|
phase: prod
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
protocol: TCP
|
||||||
|
port: 80
|
||||||
|
targetPort: 9090
|
|
@ -0,0 +1,63 @@
|
||||||
|
apiVersion: extensions/v1beta1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: heapster
|
||||||
|
namespace: kube-system
|
||||||
|
labels:
|
||||||
|
k8s-app: heapster
|
||||||
|
kubernetes.io/cluster-service: "true"
|
||||||
|
version: v1.4.0
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
k8s-app: heapster
|
||||||
|
version: v1.4.0
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
k8s-app: heapster
|
||||||
|
version: v1.4.0
|
||||||
|
annotations:
|
||||||
|
scheduler.alpha.kubernetes.io/critical-pod: ''
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: heapster
|
||||||
|
image: gcr.io/google_containers/heapster-amd64:v1.4.0
|
||||||
|
command:
|
||||||
|
- /heapster
|
||||||
|
- --source=kubernetes.summary_api:''
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: 8082
|
||||||
|
scheme: HTTP
|
||||||
|
initialDelaySeconds: 180
|
||||||
|
timeoutSeconds: 5
|
||||||
|
- name: heapster-nanny
|
||||||
|
image: gcr.io/google_containers/addon-resizer:2.0
|
||||||
|
command:
|
||||||
|
- /pod_nanny
|
||||||
|
- --cpu=80m
|
||||||
|
- --extra-cpu=0.5m
|
||||||
|
- --memory=140Mi
|
||||||
|
- --extra-memory=4Mi
|
||||||
|
- --deployment=heapster-v1.4.0
|
||||||
|
- --container=heapster
|
||||||
|
- --poll-period=300000
|
||||||
|
env:
|
||||||
|
- name: MY_POD_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: MY_POD_NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 50m
|
||||||
|
memory: 90Mi
|
||||||
|
requests:
|
||||||
|
cpu: 50m
|
||||||
|
memory: 90Mi
|
|
@ -0,0 +1,15 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: heapster
|
||||||
|
namespace: kube-system
|
||||||
|
labels:
|
||||||
|
kubernetes.io/cluster-service: "true"
|
||||||
|
kubernetes.io/name: "Heapster"
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
selector:
|
||||||
|
k8s-app: heapster
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: 8082
|
|
@ -1,6 +1,29 @@
|
||||||
# Container Linux Update Operator
|
# Container Linux Update Operator
|
||||||
|
|
||||||
More aptly named "Container Linux Reboot Coordinator".
|
The [Container Linux Update Operator](https://github.com/coreos/container-linux-update-operator) (i.e. CLUO) coordinates reboots of auto-updating Container Linux nodes so that one node reboots at a time and nodes are drained before reboot. CLUO enables the auto-update behavior Container Linux clusters are known for, but does so in a Kubernetes native way.
|
||||||
|
|
||||||
|
## Create
|
||||||
|
|
||||||
|
Create the `update-operator` deployment and `update-agent` DaemonSet.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
kubectl apply -f addons/cluo -R
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
`update-agent` runs as a DaemonSet and annotates a node when `update-engine.service` indiates an update has been installed and a reboot is needed. It also adds additional labels and annotations to nodes.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ kubectl get nodes --show-labels
|
||||||
|
...
|
||||||
|
container-linux-update.v1.coreos.com/group=stable
|
||||||
|
container-linux-update.v1.coreos.com/version=1465.6.0
|
||||||
|
```
|
||||||
|
|
||||||
|
`update-operator` ensures one node reboots at a time and that pods are drained prior to reboot.
|
||||||
|
|
||||||
|
!!! note ""
|
||||||
|
CLUO replaces `locksmithd` reboot coordination. The `update_engine` systemd unit on hosts still performs the Container Linux update check, download, and install to the inactive partition.
|
||||||
|
|
||||||
|
|
||||||
!!! bug "In Progress"
|
|
||||||
These docs haven't been completed yet.
|
|
||||||
|
|
|
@ -1,4 +1,24 @@
|
||||||
# Kubernetes Dashboard
|
# Kubernetes Dashboard
|
||||||
|
|
||||||
!!! bug "In Progress"
|
The Kubernetes [Dashboard](https://github.com/kubernetes/dashboard) provides a web UI to manage a Kubernetes cluster for those who prefer an alternative to `kubectl`.
|
||||||
These docs haven't been completed yet.
|
|
||||||
|
## Create
|
||||||
|
|
||||||
|
Create the dashboard deployment and service.
|
||||||
|
|
||||||
|
```
|
||||||
|
kubectl apply -f addons/dashboard -R
|
||||||
|
```
|
||||||
|
|
||||||
|
## Access
|
||||||
|
|
||||||
|
Use `kubectl` to authenticate to the apiserver and create a local port forward to the remote port on the dashboard pod.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
kubectl get pods -n kube-system
|
||||||
|
kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT
|
||||||
|
kubectl port-forward kubernetes-dashboard-id 9090 -n kube-system
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! tip
|
||||||
|
If you'd like to expose the Dashboard via Ingress and add authentication, use a suitable OAuth2 proxy sidecar and pick your favorite OAuth2 provider.
|
||||||
|
|
|
@ -1,4 +1,19 @@
|
||||||
# Heapster
|
# Heapster
|
||||||
|
|
||||||
!!! bug "In Progress"
|
[Heapster](https://kubernetes.io/docs/user-guide/monitoring/) collects data from apiservers and kubelets and exposes it through a REST API. This API powers the `kubectl top` command and Kubernetes dashbard graphs.
|
||||||
These docs haven't been moved over yet.
|
|
||||||
|
## Create
|
||||||
|
|
||||||
|
```sh
|
||||||
|
kubectl apply -f addons/heapster -R
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Allow heapster to run for a few minutes, then check CPU and memory usage.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
kubectl top node
|
||||||
|
kubectl top pod
|
||||||
|
```
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue