From bfde64df99fc7c30b683c82246d2137d8a550b5d Mon Sep 17 00:00:00 2001 From: jinho0928 Date: Thu, 24 Dec 2020 13:01:22 +0900 Subject: [PATCH] Update k8s_infra_installer.sh --- manifest/k8s_infra_installer.sh | 142 ++++++++++++++++++++++++-------- 1 file changed, 106 insertions(+), 36 deletions(-) diff --git a/manifest/k8s_infra_installer.sh b/manifest/k8s_infra_installer.sh index 145a374..a36c686 100644 --- a/manifest/k8s_infra_installer.sh +++ b/manifest/k8s_infra_installer.sh @@ -110,95 +110,164 @@ function install_crio() { sudo exit 100 fi +} +function install_docker() { + + echo "=========================================================================" + echo "========================== start install docker =========================" + echo "=========================================================================" + + #centos + if [[ ${os_check} == "\"CentOS Linux\"" ]]; then + + # install docker + sudo yum install -y docker + sudo systemctl start docker + sudo systemctl enable docker + + # check docker + sudo systemctl status docker + sudo rm -rf /etc/docker/daemon.json + + # edit docker config + sudo cat << "EOF" | sudo tee -a /etc/docker/daemon.json +{ + "insecure-registries": ["{imageRegistry}"] +} +EOF + sudo rm -rf ${yaml_dir}/kubeadm-config.yaml + # edit kubeadm config + sudo cat << "EOF" | sudo tee -a ${yaml_dir}/kubeadm-config.yaml +apiVersion: kubeadm.k8s.io/v1beta2 +kind: ClusterConfiguration +kubernetesVersion: {k8sVersion} +controlPlaneEndpoint: {apiServer}:6443 +imageRepository: {imageRegistry}/k8s.gcr.io +networking: +serviceSubnet: 10.96.0.0/16 +podSubnet: {podSubnet} +apiServer: +extraArgs: +advertise-address: {apiServer} +EOF + sudo sed -i "s|{imageRegistry}|${imageRegistry}|g" /etc/docker/daemon.json + sudo sed -i 's/registry.fedoraproject.org/{imageRegistry}/g' /etc/containers/registries.conf + sudo sed -i "s|{imageRegistry}|${imageRegistry}|g" /etc/containers/registries.conf + + sudo systemctl restart docker + + elif [[ ${os_check} = "\"Ubuntu\"" ]]; then + + # install docker + sudo apt-get -y install docker + sudo systemctl enable docker.service + sudo systemctl start docker.service + + # check docker + sudo systemctl status docker + + # others + else + sudo echo "This OS is not supported." + sudo exit 100 + fi } function install_kube() { - echo "=========================================================================" + echo "=========================================================================" echo "======================= start install kubernetes ======================" echo "=========================================================================" #install kubernetes if [[ -z ${k8sVersion} ]]; then - k8sVersion=1.17.6 + k8sVersion=1.17.6 else - k8sVersion=${k8sVersion} + k8sVersion=${k8sVersion} fi if [[ -z ${apiServer} ]]; then - apiServer=127.0.0.1 + apiServer=127.0.0.1 else - apiServer=${apiServer} + apiServer=${apiServer} fi if [[ -z ${podSubnet} ]]; then - podSubnet=10.244.0.0/16 + podSubnet=10.244.0.0/16 else - podSubnet=${podSubnet} + podSubnet=${podSubnet} fi # centos if [[ ${os_check} == "\"CentOS Linux\"" ]]; then - #install kubernetes components - sudo yum install -y kubeadm-${k8sVersion}-0 kubelet-${k8sVersion}-0 kubectl-${k8sVersion}-0 - sudo systemctl enable --now kubelet + #install kubernetes components + sudo yum install -y kubeadm-${k8sVersion}-0 kubelet-${k8sVersion}-0 kubectl-${k8sVersion}-0 + sudo systemctl enable --now kubelet # ubuntu elif [[ ${os_check} = "\"Ubuntu\"" ]]; then - #install kubernetes components - sudo apt-get install -y kubeadm-${k8sVersion}-0 kubelet-${k8sVersion}-0 kubectl-${k8sVersion}-0 - sudo systemctl enable kubelet + #install kubernetes components + sudo apt-get install -y kubeadm-${k8sVersion}-0 kubelet-${k8sVersion}-0 kubectl-${k8sVersion}-0 + sudo systemctl enable kubelet # others else echo "This OS is not supported." exit 100 fi - sudo echo '1' > /proc/sys/net/ipv4/ip_forward - sudo echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables + sudo echo '1' > /proc/sys/net/ipv4/ip_forward + sudo echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables - #change kubeadm yaml - sudo sed -i "s|{k8sVersion}|v${k8sVersion}|g" ${yaml_dir}/kubeadm-config.yaml - sudo sed -i "s|{apiServer}|${apiServer}|g" ${yaml_dir}/kubeadm-config.yaml - sudo sed -i "s|{podSubnet}|\"${podSubnet}\"|g" ${yaml_dir}/kubeadm-config.yaml - sudo sed -i "s|{imageRegistry}|${imageRegistry}|g" ${yaml_dir}/kubeadm-config.yaml + #change kubeadm yaml + sudo sed -i "s|{k8sVersion}|v${k8sVersion}|g" ${yaml_dir}/kubeadm-config.yaml + sudo sed -i "s|{apiServer}|${apiServer}|g" ${yaml_dir}/kubeadm-config.yaml + sudo sed -i "s|{podSubnet}|${podSubnet}|g" ${yaml_dir}/kubeadm-config.yaml + sudo sed -i "s|{imageRegistry}|${imageRegistry}|g" ${yaml_dir}/kubeadm-config.yaml - # kube init - sudo kubeadm init --config=${yaml_dir}/kubeadm-config.yaml --upload-certs + # kube init + sudo kubeadm init --config=${yaml_dir}/kubeadm-config.yaml --upload-certs - mkdir -p $HOME/.kube - sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config - sudo chown $(id -u):$(id -g) $HOME/.kube/config + mkdir -p $HOME/.kube + sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config - echo "=========================================================================" - echo "====================== complete install kubernetes ====================" - echo "=========================================================================" + echo "=========================================================================" + echo "====================== complete install kubernetes ====================" + echo "=========================================================================" } function uninstall() { - kubeadm reset -f - - sudo sed -i "s|v${k8sVersion}|{k8sVersion}|g" ${yaml_dir}/kubeadm-config.yaml - sudo sed -i "s|${apiServer}|{apiServer}|g" ${yaml_dir}/kubeadm-config.yaml - sudo sed -i "s|\"${podSubnet}\"|{podSubnet}|g" ${yaml_dir}/kubeadm-config.yaml - sudo sed -i "s|${imageRegistry}|{imageRegistry}|g" ${yaml_dir}/kubeadm-config.yaml - sudo rm -rf $HOME/.kube + + kubeadm reset --cri-socket=/var/run/crio/crio.sock + + sudo yum remove -y kubeadm-1.17.6-0 kubelet-1.17.6-0 kubectl-1.17.6-0 + sudo yum remove -y crio or sudo yum remove -y docker-ce + sudo yum remove -y keepalived + + echo "=========================================================================" + echo "===================== uninstall kubernetes success ====================" + echo "=========================================================================" } function main(){ - + case "${1:-}" in up) set_env install_crio install_kube ;; + up_docker) + set_env + install_docker + install_kube + ;; delete) uninstall ;; @@ -206,6 +275,7 @@ function main(){ set +x echo " service list:" >&2 echo " $0 up" >&2 + echo " $0 up_docker" >&2 echo " $0 delete" >&2 ;; esac