ubuntu 18.04一键安装K8s cluster

1,836 阅读1分钟

需要至少2台ubuntu,1个master-node,1-N个worker-node

配置master节点

#!/bin/bash# user could update hostnameexport hostname=master-node# k8s version usedexport kube_version=1.17.0-00# install curlsudo apt-get updatesudo apt-get install -y curl# add kubenetes repositorycurl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key addsudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"# install dockerif ! [ -x "$(command -v docker)" ]; then  echo "Docker installing ..."  curl -sSL https://get.docker.com/ | shelse  echo "docker has already been installed"fi# set user into docker group, need logout to take effect#sudo usermod -aG docker tas# install kubeadm kubelet kubectlsudo apt-get install -y kubelet=$kube_version  kubeadm=$kube_version kubectl=$kube_version#turn off swapsudo swapoff -a# set hostname and add line to hosts filesudo hostnamectl set-hostname $hostnamesudo sed -i "1i127.0.1.1       ${hostname}" /etc/hosts# For master-nodesudo kubeadm init --pod-network-cidr=10.244.0.0/16mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config#Deploy Pod Network to Clustersudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

执行上面的脚本,成功后会返回

kubeadm join 10.97.170.70:6443 --token icorqs.u4gbnyz7p11vkqz3 --discovery-token-ca-cert-hash sha256:cbbb51f01046558f6c7f2d6b5dee63a05fb14c35aae9cd9766191f10644abbf5 

配置worker节点

#!/bin/bash# user could update hostnameexport hostname=worker-node1# k8s version usedexport kube_version=1.17.0-00# install curlsudo apt-get updatesudo apt-get install -y curl# add kubenetes repositorycurl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key addsudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"# install dockerif ! [ -x "$(command -v docker)" ]; then  echo "Docker installing ..."  curl -sSL https://get.docker.com/ | shelse  echo "docker has already been installed"fi# set user into docker group, need logout to take effect#sudo usermod -aG docker tas# install kubeadm kubelet kubectlsudo apt-get install -y kubelet=$kube_version  kubeadm=$kube_version kubectl=$kube_version#turn off swapsudo swapoff -a# set hostname and add line to hosts filesudo hostnamectl set-hostname $hostnamesudo sed -i "1i127.0.1.1       ${hostname}" /etc/hosts# copy the output from master node kubeadm initsudo kubeadm join 10.97.170.70:6443 --token icorqs.u4gbnyz7p11vkqz3 --discovery-token-ca-cert-hash sha256:cbbb51f01046558f6c7f2d6b5dee63a05fb14c35aae9cd9766191f10644abbf5

修改最后一行,用第一步的返回替换,然后执行脚本

卸载脚本

#!/bin/bashecho "reset kubeadm"sudo kubeadm resetwhile true; do    echo "Do you want to uninstall kubernetes software?"    read -p "(y/n) " yn    case $yn in        [Yy]* ) uninstall_kube=yes; break;;        [Nn]* ) break;;        * ) echo "Please answer yes or no.";;    esacdoneif [ "$uninstall_kube" = "yes" ]; then    echo "##########################################################################"    echo "uninstall k8s components"    echo "##########################################################################"    sudo apt-get purge kubeadm kubectl kubelet kubernetes-cni kube*    sudo apt-get autoremove    sudo rm -rf ~/.kubefiwhile true; do    echo "Do you want to uninstall docker?"    read -p "(y/n) " yn    case $yn in        [Yy]* ) uninstall_docker=yes; break;;        [Nn]* ) break;;        * ) echo "Please answer yes or no.";;    esacdoneif [ "$uninstall_docker" = "yes" ]; then    echo "##########################################################################"    echo "uninstall k8s components"    echo "##########################################################################"    sudo apt-get purge -y docker-engine docker docker.io docker-ce    sudo apt-get autoremove -y --purge docker-engine docker docker.io docker-ce    sudo rm -rf /var/lib/docker /etc/docker    sudo groupdel docker    sudo rm -rf /var/run/docker.sockfi