Update k8s_infra_installer.sh

This commit is contained in:
jinho0928
2020-12-24 13:01:22 +09:00
committed by GitHub
parent eba5346ca0
commit bfde64df99

View File

@@ -110,95 +110,164 @@ function install_crio() {
sudo exit 100 sudo exit 100
fi 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() { function install_kube() {
echo "=========================================================================" echo "========================================================================="
echo "======================= start install kubernetes ======================" echo "======================= start install kubernetes ======================"
echo "=========================================================================" echo "========================================================================="
#install kubernetes #install kubernetes
if [[ -z ${k8sVersion} ]]; then if [[ -z ${k8sVersion} ]]; then
k8sVersion=1.17.6 k8sVersion=1.17.6
else else
k8sVersion=${k8sVersion} k8sVersion=${k8sVersion}
fi fi
if [[ -z ${apiServer} ]]; then if [[ -z ${apiServer} ]]; then
apiServer=127.0.0.1 apiServer=127.0.0.1
else else
apiServer=${apiServer} apiServer=${apiServer}
fi fi
if [[ -z ${podSubnet} ]]; then if [[ -z ${podSubnet} ]]; then
podSubnet=10.244.0.0/16 podSubnet=10.244.0.0/16
else else
podSubnet=${podSubnet} podSubnet=${podSubnet}
fi fi
# centos # centos
if [[ ${os_check} == "\"CentOS Linux\"" ]]; then if [[ ${os_check} == "\"CentOS Linux\"" ]]; then
#install kubernetes components #install kubernetes components
sudo yum install -y kubeadm-${k8sVersion}-0 kubelet-${k8sVersion}-0 kubectl-${k8sVersion}-0 sudo yum install -y kubeadm-${k8sVersion}-0 kubelet-${k8sVersion}-0 kubectl-${k8sVersion}-0
sudo systemctl enable --now kubelet sudo systemctl enable --now kubelet
# ubuntu # ubuntu
elif [[ ${os_check} = "\"Ubuntu\"" ]]; then elif [[ ${os_check} = "\"Ubuntu\"" ]]; then
#install kubernetes components #install kubernetes components
sudo apt-get install -y kubeadm-${k8sVersion}-0 kubelet-${k8sVersion}-0 kubectl-${k8sVersion}-0 sudo apt-get install -y kubeadm-${k8sVersion}-0 kubelet-${k8sVersion}-0 kubectl-${k8sVersion}-0
sudo systemctl enable kubelet sudo systemctl enable kubelet
# others # others
else else
echo "This OS is not supported." echo "This OS is not supported."
exit 100 exit 100
fi fi
sudo echo '1' > /proc/sys/net/ipv4/ip_forward 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/bridge/bridge-nf-call-iptables
#change kubeadm yaml #change kubeadm yaml
sudo sed -i "s|{k8sVersion}|v${k8sVersion}|g" ${yaml_dir}/kubeadm-config.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|{apiServer}|${apiServer}|g" ${yaml_dir}/kubeadm-config.yaml
sudo sed -i "s|{podSubnet}|\"${podSubnet}\"|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 sed -i "s|{imageRegistry}|${imageRegistry}|g" ${yaml_dir}/kubeadm-config.yaml
# kube init # kube init
sudo kubeadm init --config=${yaml_dir}/kubeadm-config.yaml --upload-certs sudo kubeadm init --config=${yaml_dir}/kubeadm-config.yaml --upload-certs
mkdir -p $HOME/.kube mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
echo "=========================================================================" echo "========================================================================="
echo "====================== complete install kubernetes ====================" echo "====================== complete install kubernetes ===================="
echo "=========================================================================" echo "========================================================================="
} }
function uninstall() { 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 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(){ function main(){
case "${1:-}" in case "${1:-}" in
up) up)
set_env set_env
install_crio install_crio
install_kube install_kube
;; ;;
up_docker)
set_env
install_docker
install_kube
;;
delete) delete)
uninstall uninstall
;; ;;
@@ -206,6 +275,7 @@ function main(){
set +x set +x
echo " service list:" >&2 echo " service list:" >&2
echo " $0 up" >&2 echo " $0 up" >&2
echo " $0 up_docker" >&2
echo " $0 delete" >&2 echo " $0 delete" >&2
;; ;;
esac esac