# pod network add advert address kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=10.7.96.3 export KUBECONFIG=/etc/kubernetes/admin.conf # calico kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml #By default, your cluster will not schedule pods on the master for security reasons. If you want to be able to schedule pods on the master, e.g. for a single-machine Kubernetes cluster for development, run: kubectl taint nodes --all node-role.kubernetes.io/master- kubectl run demo-1 --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080 kubectl expose deployment demo-1 --type=NodePort --name=demo-service kubectl create -f deployment-echoserver.yaml kubectl delete -f deployment-echoserver.yaml #### apiVersion: v1 kind: Service metadata: name: mytest spec: selector: app: echoserver ports: - protocol: "TCP" port: 8080 nodePort: 30001 type: NodePort --- apiVersion: apps/v1 kind: Deployment metadata: name: my-test spec: selector: matchLabels: app: echoserver replicas: 15 template: metadata: labels: app: echoserver spec: containers: - name: echopod image: "gcr.io/google_containers/echoserver:1.10" lifecycle: preStop: exec: command: ["echo","dead"] #### kind: Deployment metadata: name: hello spec: selector: matchLabels: app: hello tier: backend track: stable replicas: 7 template: metadata: labels: app: hello tier: backend track: stable spec: containers: - name: hello image: "gcr.io/google-samples/hello-go-gke:1.0" ports: - name: http containerPort: 80 --- kind: Service apiVersion: v1 metadata: name: hello spec: selector: app: hello tier: backend ports: - protocol: TCP port: 80 targetPort: http --- apiVersion: v1 kind: Service metadata: name: frontend spec: selector: app: hello tier: frontend ports: - protocol: "TCP" port: 80 nodePort: 30000 type: NodePort --- apiVersion: apps/v1 kind: Deployment metadata: name: frontend spec: selector: matchLabels: app: hello tier: frontend track: stable replicas: 1 template: metadata: labels: app: hello tier: frontend track: stable spec: containers: - name: nginx image: "gcr.io/google-samples/hello-frontend:1.0" lifecycle: preStop: exec: command: ["/usr/sbin/nginx","-s","quit"] #### INSTALL SCRIPT #!/bin/sh apt-get update apt-get install -y apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh apt-get update && apt-get install -y apt-transport-https curl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - cat </etc/apt/sources.list.d/kubernetes.list deb https://apt.kubernetes.io/ kubernetes-xenial main EOF apt-get update apt-get install -y kubelet kubeadm kubectl apt-mark hold kubelet kubeadm kubectl # tools apt-get install -y vim jq procps curl zsh git swapoff -a echo "set mouse-=a" > ~/.vimrc sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" kubeadm config images pull