thesuhu

Kubernetes Master Node

Jan 28th, 2020 (edited)
954
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.70 KB | None | 0 0
  1. # INSTALL KUBERNETES ON CENTOS 7
  2.  
  3. # Step 1: Prepare Hostname, Firewall and SELinux
  4. # master-node ganti sesuai nama hostname atau nama hostname diganti menjadi master-node
  5. sudo vi /etc/hosts
  6. 10.128.0.27 master-node
  7. 10.128.0.29 node-1 worker-node-1
  8. 10.128.0.30 node-2 worker-node-2
  9.  
  10. # You can ping worker-node-1 and worker-node-2 to test (100% lost)
  11. ping 10.128.0.29
  12. ping 10.128.0.30
  13.  
  14. # disable SElinux and update your firewall rules
  15. sudo setenforce 0
  16. sudo sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
  17. sudo reboot
  18.  
  19. # Set the following firewall rules on ports
  20. sudo firewall-cmd --permanent --add-port=6443/tcp
  21. sudo firewall-cmd --permanent --add-port=2379-2380/tcp
  22. sudo firewall-cmd --permanent --add-port=10250/tcp
  23. sudo firewall-cmd --permanent --add-port=10251/tcp
  24. sudo firewall-cmd --permanent --add-port=10252/tcp
  25. sudo firewall-cmd --permanent --add-port=10255/tcp
  26. sudo firewall-cmd --reload
  27. sudo modprobe br_netfilter
  28.  
  29. # pastikan isinya 1, jika tidak edit
  30. echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
  31.  
  32. # Step 2: Setup the Kubernetes Repo
  33. sudo vi /etc/yum.repos.d/kubernetes.repo
  34.  
  35. [kubernetes]
  36. name=Kubernetes
  37. baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
  38. enabled=1
  39. gpgcheck=1
  40. repo_gpgcheck=1
  41. gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
  42. EOF
  43.  
  44. # Step 3: Install Kubeadm and Docker
  45. sudo yum install kubeadm docker -y
  46.  
  47. # When the installation completes successfully, enable and start both services
  48. sudo systemctl enable kubelet
  49. sudo systemctl start kubelet
  50. sudo systemctl enable docker
  51. sudo systemctl start docker
  52.  
  53. # Step 4: Initialize Kubernetes Master and Setup Default User
  54. # disable swap in order to run “kubeadm init“ command
  55. sudo swapoff -a
  56.  
  57. # Initializing Kubernetes master is a fully automated process that is managed by the “kubeadm init“ command which you will run
  58. sudo kubeadm init # tambahkan --pod-network-cidr=10.244.0.0/16 jika akan install flanel
  59.  
  60. # jika error pastikan hostname di dns disesuaikan, buka port 6443 dan 10250 di firewall
  61. # jika ingin mereset/mengulang kubeadm init
  62. kubeadm reset
  63.  
  64. # contoh setelah init catat baris terakhir (You may want to copy the last line and save it somewhere because you will need to run it on the worker nodes.)
  65. sudo kubeadm join 10.128.0.27:6443 --token fyllch.1b6jl7p6azn16rfr \
  66.     --discovery-token-ca-cert-hash sha256:68f2b4540eaf8794b5296f40289bf4325cec0045b885b863ae55f19ddb4b4ca2
  67.  
  68. # jika join error dir not empty, tambahkan parameter
  69. --ignore-preflight-errors=All
  70.  
  71. # bila lupa kode join bisa ketik perintah berikut
  72. kubeadm token create --print-join-command
  73.  
  74. # jika error di centos (Centos Docker runs in cgroupfs while kubelet runs in systemd cgroup), ubah group docker ke systemd
  75. # lihat cgroup docker
  76. docker info | grep -i cgroup
  77. sudo vi /etc/docker/daemon.json
  78.  
  79. {
  80.   "exec-opts": ["native.cgroupdriver=systemd"],
  81.   "log-driver": "json-file",
  82.   "log-opts": {
  83.     "max-size": "100m"
  84.   },
  85.   "storage-driver": "overlay2",
  86.   "storage-opts": [
  87.     "overlay2.override_kernel_check=true"
  88.   ]
  89. }
  90.  
  91. sudo mkdir -p /etc/systemd/system/docker.service.d
  92.  
  93. # Restart Docker
  94. systemctl daemon-reload
  95. systemctl restart docker
  96.  
  97. # Having initialized Kubernetes successfully, you will need to allow your user to start using the cluster, To use a sudo enabled user:
  98. sudo mkdir -p $HOME/.kube
  99. sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  100. sudo chown $(id -u):$(id -g) $HOME/.kube/config
  101.  
  102. # Now check to see if the kubectl command is activated
  103. kubectl get nodes
  104.  
  105. # At this point, you will also notice that the status of the master-node is ‘NotReady’.
  106. # This is because we are yet to deploy the pod network to the cluster
  107. # The pod Network is the overlay network for the cluster, that is deployed on top of the present node network.
  108. # It is designed to allow connectivity across the pod.
  109.  
  110. # Step 5: Setup Your Pod Network
  111. # These commands will be important to get the pod network setup
  112. export kubever=$(kubectl version | base64 | tr -d '\n')
  113. kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"
  114.  
  115. # Now if you check the status of your master-node, it should be ‘Ready’
  116. kubectl get nodes
  117.  
  118. # note: jika setelah reboot service kubelet tidak jalan
  119. # swap off, join ulang
  120. # kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"
  121. # untuk network selain weave bisa gunakan flanel (documentation network https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network)
  122.  
  123. # install ulang, sebelum init, hapus config di $HOME/.kube/config
  124. sudo rm $HOME/.kube/config
  125. sudo rm $HOME/.kube/config.old
Add Comment
Please, Sign In to add comment