-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
new file: 07-05_cleanup.sh new file: 08-01_creating_a_ReplicaSet.sh new file: 08-01_kuard-rs.yaml new file: 08-02_inspecting_a_ReplicaSet.sh new file: 08-03_kuard-rs_scale_replicas_3.yaml new file: 08-03_scaling_ReplicaSet.sh new file: 08-04_autoscaling_a_replicaset_install_heapster.sh new file: 08-05_autoscaling_a_replicaset.sh new file: 08-05_autoscaling_a_replicaset_request.yaml new file: heapster/deploy/kube-config/influxdb/grafana.yaml new file: heapster/deploy/kube-config/influxdb/heapster.yaml new file: heapster/deploy/kube-config/influxdb/influxdb.yaml new file: heapster/deploy/kube-config/rbac/heapster-rbac.yaml new file: metrics-server/deploy/auth-delegator.yaml new file: metrics-server/deploy/auth-reader.yaml new file: metrics-server/deploy/docker/Dockerfile new file: metrics-server/deploy/metrics-apiservice.yaml new file: metrics-server/deploy/metrics-server-deployment.yaml new file: metrics-server/deploy/metrics-server-service.yaml new file: metrics-server/deploy/resource-reader.yaml
- Loading branch information
1 parent
eada934
commit 2c61cd2
Showing
20 changed files
with
463 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#!/bin/bash | ||
|
||
set -x | ||
|
||
# Delete everything from this chapter | ||
kubectl delete services,deployments -l app |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
#!/bin/bash | ||
|
||
set -x | ||
|
||
# create ReplicaSet | ||
kubectl apply -f 08-01_kuard-rs.yaml | ||
|
||
# list pods, ReplicaSets | ||
kubectl get pods,rs --show-labels -o wide |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
apiVersion: extensions/v1beta1 | ||
kind: ReplicaSet | ||
metadata: | ||
name: kuard | ||
spec: | ||
replicas: 1 | ||
template: | ||
metadata: | ||
labels: | ||
app: kuard | ||
version: "2" | ||
spec: | ||
containers: | ||
- name: kuard | ||
image: "gcr.io/kuar-demo/kuard-amd64:2" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#!/bin/bash | ||
|
||
set -x | ||
|
||
# describe | ||
kubectl describe rs kuard | ||
|
||
read -p "Continue?" | ||
|
||
# Find a ReplicaSet from a Pod | ||
KUARD_POD=$(kubectl get pods -l app=kuard -o jsonpath='{.items[0].metadata.name}') | ||
kubectl get pods $KUARD_POD -o yaml | ||
|
||
read -p "Continue?" | ||
|
||
# Find a Set of Pods for a ReplicaSet | ||
|
||
kubectl get pods -l app=kuard,version=2 --show-labels |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
apiVersion: extensions/v1beta1 | ||
kind: ReplicaSet | ||
metadata: | ||
name: kuard | ||
spec: | ||
replicas: 3 | ||
template: | ||
metadata: | ||
labels: | ||
app: kuard | ||
version: "2" | ||
spec: | ||
containers: | ||
- name: kuard | ||
image: "gcr.io/kuar-demo/kuard-amd64:2" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
#!/bin/bash | ||
|
||
set -x | ||
|
||
# Imperative Scaling | ||
kubectl scale rs/kuard --replicas=4 | ||
kubectl get rs -o wide | ||
read -p "Continue?" | ||
|
||
kubectl describe rs kuard | ||
read -p "Continue?" | ||
|
||
kubectl get pods -l app=kuard,version=2 --show-labels -o wide | ||
read -p "Continue?" | ||
|
||
# Declarative Scale | ||
kubectl apply -f 08-03_kuard-rs_scale_replicas_3.yaml | ||
kubectl get rs -o wide | ||
read -p "Continue?" | ||
|
||
kubectl describe rs kuard | ||
read -p "Continue?" | ||
|
||
kubectl get pods -l app=kuard,version=2 --show-labels -o wide |
22 changes: 22 additions & 0 deletions
22
manifests/08-04_autoscaling_a_replicaset_install_heapster.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
#!/bin/bash | ||
|
||
set -x | ||
|
||
# install heapster (v1.5.1) as detailed in docs: | ||
# https://github.com/kubernetes/heapster/blob/v1.5.1/docs/influxdb.md | ||
kubectl create -f heapster/deploy/kube-config/influxdb/ | ||
kubectl create -f heapster/deploy/kube-config/rbac/heapster-rbac.yaml | ||
|
||
# verify installation | ||
|
||
sleep 10 | ||
kubectl get pods --namespace=kube-system | ||
|
||
sleep 30 | ||
kubectl top nodes | ||
|
||
# install metrics-server (v0.2.1) as detailed in docs: | ||
# https://github.com/kubernetes-incubator/metrics-server/tree/v0.2.1 | ||
# https://kubernetes.io/docs/tasks/debug-application-cluster/core-metrics-pipeline/ | ||
|
||
kubectl create -f metrics-server/deploy/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
#!/bin/bash | ||
|
||
set -x | ||
|
||
# set requested resources | ||
kubectl apply -f 08-05_autoscaling_a_replicaset_request.yaml | ||
|
||
# anable hpa | ||
kubectl autoscale rs kuard --min=1 --max=5 --cpu-percent=80 | ||
|
||
# Observe HPA: | ||
kubectl get hpa -w & | ||
sleep 120 | ||
|
||
read -p "Continue?" | ||
|
||
kubectl describe hpa kuard | ||
|
||
read -p "Continue?" | ||
|
||
# observe autoscaling: | ||
|
||
kubectl proxy & | ||
echo "Open grafana via: http://localhost:8001/api/v1/proxy/namespaces/kube-system/services/monitoring-grafana:80/?orgId=1" | ||
|
||
read -p "Continue?" | ||
|
||
## generate load | ||
KUARD_POD=$(kubectl get pods -l app=kuard -o jsonpath='{.items[0].metadata.name}') | ||
kubectl port-forward $KUARD_POD 48858:8080 & | ||
sleep 10 | ||
echo "Open in browser: http://localhost:48858/-/keygen" | ||
echo "And generate some CPU load" | ||
|
||
read -p "Continue?" | ||
|
||
kubectl describe hpa kuard | ||
|
||
jobs | ||
read -p "Exit?" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
apiVersion: extensions/v1beta1 | ||
kind: ReplicaSet | ||
metadata: | ||
name: kuard | ||
spec: | ||
replicas: 3 | ||
template: | ||
metadata: | ||
labels: | ||
app: kuard | ||
version: "2" | ||
spec: | ||
containers: | ||
- name: kuard | ||
image: "gcr.io/kuar-demo/kuard-amd64:2" | ||
resources: | ||
requests: | ||
cpu: "500m" | ||
memory: "128Mi" |
72 changes: 72 additions & 0 deletions
72
manifests/heapster/deploy/kube-config/influxdb/grafana.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
apiVersion: extensions/v1beta1 | ||
kind: Deployment | ||
metadata: | ||
name: monitoring-grafana | ||
namespace: kube-system | ||
spec: | ||
replicas: 1 | ||
template: | ||
metadata: | ||
labels: | ||
task: monitoring | ||
k8s-app: grafana | ||
spec: | ||
containers: | ||
- name: grafana | ||
image: gcr.io/google_containers/heapster-grafana-amd64:v4.4.3 | ||
ports: | ||
- containerPort: 3000 | ||
protocol: TCP | ||
volumeMounts: | ||
- mountPath: /etc/ssl/certs | ||
name: ca-certificates | ||
readOnly: true | ||
- mountPath: /var | ||
name: grafana-storage | ||
env: | ||
- name: INFLUXDB_HOST | ||
value: monitoring-influxdb | ||
- name: GF_SERVER_HTTP_PORT | ||
value: "3000" | ||
# The following env variables are required to make Grafana accessible via | ||
# the kubernetes api-server proxy. On production clusters, we recommend | ||
# removing these env variables, setup auth for grafana, and expose the grafana | ||
# service using a LoadBalancer or a public IP. | ||
- name: GF_AUTH_BASIC_ENABLED | ||
value: "false" | ||
- name: GF_AUTH_ANONYMOUS_ENABLED | ||
value: "true" | ||
- name: GF_AUTH_ANONYMOUS_ORG_ROLE | ||
value: Admin | ||
- name: GF_SERVER_ROOT_URL | ||
# If you're only using the API Server proxy, set this value instead: | ||
# value: /api/v1/namespaces/kube-system/services/monitoring-grafana/proxy | ||
value: / | ||
volumes: | ||
- name: ca-certificates | ||
hostPath: | ||
path: /etc/ssl/certs | ||
- name: grafana-storage | ||
emptyDir: {} | ||
--- | ||
apiVersion: v1 | ||
kind: Service | ||
metadata: | ||
labels: | ||
# For use as a Cluster add-on (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons) | ||
# If you are NOT using this as an addon, you should comment out this line. | ||
kubernetes.io/cluster-service: 'true' | ||
kubernetes.io/name: monitoring-grafana | ||
name: monitoring-grafana | ||
namespace: kube-system | ||
spec: | ||
# In a production setup, we recommend accessing Grafana through an external Loadbalancer | ||
# or through a public IP. | ||
# type: LoadBalancer | ||
# You could also use NodePort to expose the service at a randomly-generated port | ||
type: NodePort | ||
ports: | ||
- port: 80 | ||
targetPort: 3000 | ||
selector: | ||
k8s-app: grafana |
46 changes: 46 additions & 0 deletions
46
manifests/heapster/deploy/kube-config/influxdb/heapster.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
apiVersion: v1 | ||
kind: ServiceAccount | ||
metadata: | ||
name: heapster | ||
namespace: kube-system | ||
--- | ||
apiVersion: extensions/v1beta1 | ||
kind: Deployment | ||
metadata: | ||
name: heapster | ||
namespace: kube-system | ||
spec: | ||
replicas: 1 | ||
template: | ||
metadata: | ||
labels: | ||
task: monitoring | ||
k8s-app: heapster | ||
spec: | ||
serviceAccountName: heapster | ||
containers: | ||
- name: heapster | ||
image: gcr.io/google_containers/heapster-amd64:v1.5.1 | ||
imagePullPolicy: IfNotPresent | ||
command: | ||
- /heapster | ||
- --source=kubernetes:https://kubernetes.default | ||
- --sink=influxdb:http://monitoring-influxdb.kube-system.svc:8086 | ||
--- | ||
apiVersion: v1 | ||
kind: Service | ||
metadata: | ||
labels: | ||
task: monitoring | ||
# For use as a Cluster add-on (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons) | ||
# If you are NOT using this as an addon, you should comment out this line. | ||
kubernetes.io/cluster-service: 'true' | ||
kubernetes.io/name: Heapster | ||
name: heapster | ||
namespace: kube-system | ||
spec: | ||
ports: | ||
- port: 80 | ||
targetPort: 8082 | ||
selector: | ||
k8s-app: heapster |
40 changes: 40 additions & 0 deletions
40
manifests/heapster/deploy/kube-config/influxdb/influxdb.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
apiVersion: extensions/v1beta1 | ||
kind: Deployment | ||
metadata: | ||
name: monitoring-influxdb | ||
namespace: kube-system | ||
spec: | ||
replicas: 1 | ||
template: | ||
metadata: | ||
labels: | ||
task: monitoring | ||
k8s-app: influxdb | ||
spec: | ||
containers: | ||
- name: influxdb | ||
image: gcr.io/google_containers/heapster-influxdb-amd64:v1.3.3 | ||
volumeMounts: | ||
- mountPath: /data | ||
name: influxdb-storage | ||
volumes: | ||
- name: influxdb-storage | ||
emptyDir: {} | ||
--- | ||
apiVersion: v1 | ||
kind: Service | ||
metadata: | ||
labels: | ||
task: monitoring | ||
# For use as a Cluster add-on (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons) | ||
# If you are NOT using this as an addon, you should comment out this line. | ||
kubernetes.io/cluster-service: 'true' | ||
kubernetes.io/name: monitoring-influxdb | ||
name: monitoring-influxdb | ||
namespace: kube-system | ||
spec: | ||
ports: | ||
- port: 8086 | ||
targetPort: 8086 | ||
selector: | ||
k8s-app: influxdb |
12 changes: 12 additions & 0 deletions
12
manifests/heapster/deploy/kube-config/rbac/heapster-rbac.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
kind: ClusterRoleBinding | ||
apiVersion: rbac.authorization.k8s.io/v1beta1 | ||
metadata: | ||
name: heapster | ||
roleRef: | ||
apiGroup: rbac.authorization.k8s.io | ||
kind: ClusterRole | ||
name: system:heapster | ||
subjects: | ||
- kind: ServiceAccount | ||
name: heapster | ||
namespace: kube-system |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
apiVersion: rbac.authorization.k8s.io/v1beta1 | ||
kind: ClusterRoleBinding | ||
metadata: | ||
name: metrics-server:system:auth-delegator | ||
roleRef: | ||
apiGroup: rbac.authorization.k8s.io | ||
kind: ClusterRole | ||
name: system:auth-delegator | ||
subjects: | ||
- kind: ServiceAccount | ||
name: metrics-server | ||
namespace: kube-system |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
apiVersion: rbac.authorization.k8s.io/v1beta1 | ||
kind: RoleBinding | ||
metadata: | ||
name: metrics-server-auth-reader | ||
namespace: kube-system | ||
roleRef: | ||
apiGroup: rbac.authorization.k8s.io | ||
kind: Role | ||
name: extension-apiserver-authentication-reader | ||
subjects: | ||
- kind: ServiceAccount | ||
name: metrics-server | ||
namespace: kube-system |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
FROM BASEIMAGE | ||
|
||
COPY metrics-server / | ||
COPY ca-certificates.crt /etc/ssl/certs/ | ||
|
||
ENTRYPOINT ["/metrics-server"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
apiVersion: apiregistration.k8s.io/v1beta1 | ||
kind: APIService | ||
metadata: | ||
name: v1beta1.metrics.k8s.io | ||
spec: | ||
service: | ||
name: metrics-server | ||
namespace: kube-system | ||
group: metrics.k8s.io | ||
version: v1beta1 | ||
insecureSkipTLSVerify: true | ||
groupPriorityMinimum: 100 | ||
versionPriority: 100 |
Oops, something went wrong.