Skip to content

Instantly share code, notes, and snippets.

@prashanth-sams
Forked from gianrubio/K8s Cheat sheet.md
Created May 9, 2019 16:20
Show Gist options
  • Save prashanth-sams/ad36a614d8bb4c342e6adc37eea7fe2e to your computer and use it in GitHub Desktop.
Save prashanth-sams/ad36a614d8bb4c342e6adc37eea7fe2e to your computer and use it in GitHub Desktop.
Deploy prometheus using helm

k8s cheat sheet

aws s3api create-bucket --bucket my-kops-bucket --location- eu-west-1 --create-bucket-configuration LocationConstraint=eu-west-1
export NAME=my-kops-cluster-name
export KOPS_STATE_STORE=s3://my-kops-bucket-name 
kops create cluster --zones eu-west-1a,eu-west-1b --name $NAME --node-count=2 --node-size=t2.medium  --authorization=RBAC   --networking=calico --encrypt-etcd-storage --kubernetes-version=v1.7.10 
kops update cluster --yes
kops validate cluster

Enable storageSpec

Prometheus

kubectl create ns monitoring
cd ~/go/src/github.com/coreos/prometheus-operator/helm

kubectl -n kube-system create sa tiller
kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
helm init --service-account tiller

helm install --name prometheus-operator --set rbacEnable=true --namespace=monitoring prometheus-operator

helm install --name grafana --set externalUrl=grafana.kops.k8s.live --set ingress.enabled=true --set ingress.fqdn=grafana.kops.k8s.live --namespace=monitoring grafana

helm install --name alertmanager --set externalUrl=http://alertmanager.kops.k8s.live/ --set ingress.enabled=true --set ingress.fqdn=alertmanager.kops.k8s.live --namespace=monitoring alertmanager

helm install --name prometheus --set externalUrl=http://prometheus.kops.k8s.live/ --set ingress.enabled=true --set serviceMonitorsSelector.app=prometheus --set ruleSelector.app=prometheus --set ingress.fqdn=prometheus.kops.k8s.live --set retention=140h --namespace=monitoring prometheus

Ingress

cd ~/go/src/github.com/kubernetes/charts/stable/
helm install --name ingress-0-9-0-beta-11 --set controller.image.tag=0.9.0-beta.11 --set controller.stats.enabled=true --namespace=kube-system stable/nginx-ingress/

helm install  --name ingress-0-9-0-beta-11 --set controller.image.tag=0.9.0-beta.11   --set controller.stats.enabled=true --namespace=kube-system .

# proxy protocol
export ELB_NAME=ae91d7320781d11e7a29306250de84a3
export INSTANCE_PORT=30046
aws elb create-load-balancer-policy --load-balancer-name $ELB_NAME --policy-name my-ProxyProtocol-policy --policy-type-name ProxyProtocolPolicyType --policy-attributes AttributeName=ProxyProtocol,AttributeValue=true
aws elb set-load-balancer-policies-for-backend-server --load-balancer-name $ELB_NAME --instance-port 30046 --policy-names my-ProxyProtocol-policy 

#edit configmap
  enable-vts-status: "true"
  log-format-upstream: '{ "time": "$time_iso8601", "remote_addr": "$proxy_protocol_addr",
    "x-forward-for": "$proxy_add_x_forwarded_for", "request_id": "$request_id", "remote_user":
    "$remote_user", "bytes_sent": $bytes_sent, "request_time": $request_time, "status":
    $status, "vhost": "$host", "request_proto": "$server_protocol", "path": "$uri",
    "request_query": "$args", "request_length": $request_length, "duration": $request_time,
    "method": "$request_method", "http_referrer": "$http_referer", "http_user_agent":
    "$http_user_agent" }'
  proxy-real-ip-cidr: 172.20.0.0/16
  proxy-send-timeout: "600"
  server-tokens: "false"
  use-proxy-protocol: "true"

Logging

https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch

kube-lego

kubectl create sa kube-lego -n kube-system
helm install --name kube-lego   --set [email protected] --set config.LEGO_URL=https://acme-v01.api.letsencrypt.org/directory --set serviceAccount=kube-lego  --namespace=kube-system  stable/kube-lego/


``
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment