Created
January 25, 2019 09:48
-
-
Save gai00/48bbfd53ed086dc768267b3a6d4fdf81 to your computer and use it in GitHub Desktop.
k8s_practice
This file contains hidden or 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
| #!/bin/bash | |
| # aws ubuntu 16.04/18.04 tested | |
| # install | |
| # Ref: https://kubernetes.io/docs/setup/independent/install-kubeadm/#installing-kubeadm-kubelet-and-kubectl | |
| sudo -s | |
| 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 | |
| # init (CNI: Net Weave) | |
| sysctl net.bridge.bridge-nf-call-iptables=1 | |
| kubeadm init | |
| exit | |
| mkdir -p $HOME/.kube | |
| sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config | |
| sudo chown $(id -u):$(id -g) $HOME/.kube/config | |
| sudo -s | |
| export KUBECONFIG=/etc/kubernetes/admin.conf | |
| # enable master to deploy | |
| kubectl taint nodes --all node-role.kubernetes.io/master- | |
| # CNI - Net Weave | |
| # Ref: https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#pod-network | |
| # Ref: https://chrislovecnm.com/kubernetes/cni/choosing-a-cni-provider/ | |
| kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" | |
| # Dashboard | |
| # Ref: https://github.com/kubernetes/dashboard | |
| kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml | |
| # Dashboard user | |
| # Ref: https://github.com/kubernetes/dashboard/wiki/Creating-sample-user | |
| echo -e "apiVersion: v1\r\nkind: ServiceAccount\r\nmetadata:\r\n name: admin-user\r\n namespace: kube-system" > admin-user.yaml | |
| kubectl apply -f admin-user.yaml | |
| echo -e "apiVersion: rbac.authorization.k8s.io/v1\r\nkind: ClusterRoleBinding\r\nmetadata:\r\n name: admin-user\r\nroleRef:\r\n apiGroup: rbac.authorization.k8s.io\r\n kind: ClusterRole\r\n name: cluster-admin\r\nsubjects:\r\n- kind: ServiceAccount\r\n name: admin-user\r\n namespace: kube-system\r\n" > role-binding.yaml | |
| kubectl apply -f role-binding.yaml | |
| # my IP | |
| export IP=$(curl https://ipinfo.io/ip) | |
| # get dashboard url & token | |
| echo "https://${IP}:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/" | |
| export TOKEN=$(kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}') | grep token: | awk '{print $2}') | |
| echo $TOKEN | |
| # remember to access by Chrome Plugin: Modify Headers | |
| # set header -> Authorization: Bearer $TOKEN |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment