安装前准备
- 一台或多台机器,操作系统CentOS7.x86_x64 (我这里准备的3台,1台master和2台node节点)
- 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
- 集群中所有机器之间网络互通
- 可以访问外网,需要拉取镜像
- 禁止swap分区
环境准备
master 192.168.1.140
node one 192.168.1.141
node two 192.168.1.142
分别在master和两个node中执行
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭swap,如果pod放在swap内会降低工作效率
swapoff -a && sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab
#将桥连的IPv4流量传递到iptables的链中
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge.-nf-call-ip6tables = 1
net.bridge.bridge.-nf-call-iptables = 1
EOF
分别在master和两个node中安装docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
#创建docker阿里云加速
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://indar3n3.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
}
}
EOF
systemctl daemon-reload && systemctl restart docker
添加kubernetes阿里云yum加速
#分别在master和两个node中安装docker
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
安装kubeadm、kubelet、kubectl
setenforce 0
yum -y install kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
systemctl enable kubelet.service
初始化Master
kubeadm init \
--apiserver-advertise-address=192.168.1.140 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.0 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
初始化完成后会输出加入集群的toker注意保存,如果没有及时保存可以通过命令重新获取
#在master执行
kubeadm token create --print-join-command

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
下载kube-flannel.yml官方文件
wget
https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
因为github国内访问比较困难,可以使用我已经下载好的yaml文件 下载地址
kubectl apply -f 文件路径/kube-flannel.yml
拉取flannel镜像文件
分别在master和node执行
docker pull lizhenliang/flannel:v0.11.0-amd64
node节点加入集群
#使用之前输入的toker分别在2个node节点加入集群
kubeadm join 192.168.1.142:6443 --token 63al9u.l5nl5thvsd25rlwx --discovery-token-ca-cert-hash sha256:a8bd244c352aae30db6a86958d0c12105362a816b9779d2d49c3321e9a78e76d
#***** 不要复制我的命令,使用你master初始化完成后的toker,如果忘记保存使用之前的命令重新获取******

看到最后一句 “ Run ‘kubectl get nodes’ on the control-plane to see this node join the cluster” 表示已经加入集群中
#在master执行命令查看集群状态
kubectl get nodes

安装Web图形化界面
下载Dashboard官方文件
https://github.com/kubernetes/dashboard/releases
如果访问github异常,可以使用我已经下载并配置好的文件 下载地址
下载完成后根据需求修改端口

安装dashboard
kubectl apply -f dashboard-recommended.yaml
#如果没有报错,所有pod都Create的话可以通过命令查看pod是否已经运行成功
kubectl get pod --all-namespaces


kubectl describe secret -n kubernetes-dashboard $(kubectl get secret -n kubernetes-dashboard |grep kubernetes-dashboard-token | awk '{print $1}') |grep token | awk '{print $2}'

复制token到界面登陆
