- # 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 <<EOF >/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