#!/bin/bash
#2024年1月12日20:34:56
#auto install kubernetes 1.20.4
##################
#设置变量
MASTER_IP=10.0.12.13 K8S_VERSION=1.20.4 FLANNEL_VERSION=0.14.0
#关闭防火墙和selinux systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#修改主机名 hostnamectl set-hostname k8s-master
#添加Kubernetes阿里源 cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=0 EOF
#安装Docker-CE版本;
yum install docker-ce* -y
#查Docker版本是否安装;
rpm -qa|grep -E "docker"
#安装 docker、kubelet、kubeadm yum install -y kubelet-${K8S_VERSION} kubeadm-${K8S_VERSION} kubectl-${K8S_VERSION} --disableexcludes=kubernetes
#启动kubelet服务 systemctl enable kubelet systemctl start kubelet
#初始化 kubeadm kubeadm init --kubernetes-version=v1.20.4 --pod-network-cidr=10.244.0.0/16
#设置 kubeconfig mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u).$(id -g) $HOME/.kube/config
#安装 flannel 网络插件
#部署 dashboard
#创建 dashboard 用户 cat > dashboard-admin.yaml << EOF apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard EOF kubectl apply -f dashboard-admin.yaml cat > dashboard-admin-rolebinding.yaml << EOF apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kubernetes-dashboard EOF
kubectl apply -f dashboard-admin-rolebinding.yaml
#获取 dashboard 登录 token kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
#输出 dashboard URL |