环境准备
windows10 基于 vmware虚拟机安装 Centos7 系统,关于系统的优化,猛击这里
OS 的镜像,我没测试过,这里依据我的模板进行操作.
这里主要讲一下 yum 软件安装源的问题,由于默认软件仓库需要连接国外站点,导致更新软件的时候,速度较慢,
阿里云官方镜像站
1. Centos7 系统 yum 安装源的替换
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 备份系统自带的安装源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo # 更换为阿里云的安装源
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo #解决报错问题
yum makecache fast # 生成缓存
2. Epel 镜像
yum install wget -y # 安装下载工具
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo #下载安装源
yum makecache # 生成缓存
3. Kubernetes 镜像
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
4. Docker CE 镜像
yum install -y yum-utils device-mapper-persistent-data lvm2 # 安装工具和依赖
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 配置 yum 安装源
yum makecache fast # 快速生成缓存
安装单机 K8S
1. 安装 kubectl , kubectl 是操作 k8s 集群的命令行工具
#由于我们安装 kubernetes 安装源,所以直接安装就可以
yum install kubectl -y
2. 下载 minikube 安装工具,这是一个快速在本地环境安装 k8s 的工具
curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.12.0/minikube-linux-amd64
chmod +x minikube && sudo mv minikube /usr/local/bin/ # 赋予执行权限并加入环境变量
minikube 在 Centos7系统上支持很多驱动, 这些驱动可以调用虚拟机程序创建 k8s 集群.
- kvm2 在 kvm 虚拟机中创建k8s , 需要打开cpu 的嵌套虚拟化功能
- virtualbox 在 virtualbox 虚拟机中创建 k8s , 需要打开cpu 的嵌套虚拟化功能
- docker 在 docker 容器中创建 k8s.
- none 使用本地docker 创建 k8s,类似于 kubeadm 单机版.
这里只介绍两种驱动方式安装 k8s
1. KVM2
安装KVM虚拟机的软件
yum install libvirt qemu-kvm -y # 安装虚拟机软件
systemctl enable libvirtd --now # 启动虚拟机并加入开机启动
virt-host-validate # 验证虚拟机有没有错误,
我的虚拟机展示一个 WARN, 一个 FAIL, 由于我有强迫症,修复了这两个错误,所以并没有测试不修复错误是否可以正常安装 k8s.
参考这里 FAIL (Load the 'fuse' module to enable /proc/ overrides 修复方法:modprobe fuse, 如需实现开机加载, 可以参考这里, 抱歉,偷懒了,只是参考,还需自己改改.
minikube 安装 k8s
重要的参数, 抱歉 copy 别人的,丰富自己的.
--driver=***
- 从1.5.0版本开始,Minikube缺省使用本地最好的驱动来创建Kubernetes本地环境,测试过的版本 docker, kvm
- --image-mirror-country cn 将缺省利用 registry.cn-hangzhou.aliyuncs.com/google_containers 作为安装Kubernetes的容器镜像仓库 (阿里云版本可选)
- --iso-url=*** 利用阿里云的镜像地址下载相应的 .iso 文件 (阿里云版本可选), 指的是虚拟机镜像。
- --registry-mirror=***为了拉取Docker Hub镜像,需要为 Docker daemon 配置镜像加速,参考阿里云镜像服务
- --cpus=2: 为minikube虚拟机分配CPU核数
- --memory=2048mb: 为minikube虚拟机分配内存数
- --kubernetes-version=***: minikube 虚拟机将使用的 kubernetes 版本
Everything is ready ,it is time to start
minikube start --iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.7.3.iso
--image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
--registry-mirror=https://zgmke8qe.mirror.aliyuncs.com --driver=kvm2 --force
安装过程被卡在了: 正在下载驱动 docker-machine-driver-kvm2.
原因: docker-machine-driver-kvm2, 这个驱动(也就是可执行文件)是需要通过国外站点下载,非常慢。
方案:
#登录一台香港服务器,执行如下命令下载这个驱动文件
curl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2
#上传这个驱动文件到本地服务器后,执行如下命令
chmod +x docker-machine-driver-kvm2 && sudo mv docker-machine-driver-kvm2 /usr/local/bin/
接下来就是见证奇迹的时刻,只需要大约五分钟左右,我们的 k8s 单机版就顺利安装完成。(如果按照官方文档教程,我测试了,在国内太难了)
验证 k8s 集群
安装 dashboard
#安装 dashboard,此命令是在虚拟机的k8s中安装 dashboard
minikube dashboard
#对外访问dashboard,执行如下命令,作用是建立一条通往API服务器的隧道,可以方便查看API服务器上的资源
kubectl proxy --port=8001 --address='your server ip' --accept-hosts='^.*'
不用经过 token 验证就就可以访问 dashboard 了,方便我们学习和测试.
有兴趣的同学,可以百度一下 k8s 的api, 就能理解一下URL了
访问地址: http://your-ip:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
2 None
就我个人学习而言,我比较喜欢使用None的方式。
- 安装简单,依赖较少。
- 使用本地docker 创建容器,很容易就能了解服务的架构。
安装并配置本地 docker
#安装并启动 docker
yum install docker-ce -y && systemctl enable docker --now
#配置镜像加速器
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://zgmke8qe.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload && systemctl restart docker
minikube 安装 k8s
#由于配置了镜像加速器,所以不需要指定 --registry-mirror
minikube start --iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.7.3.iso
--image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers --driver=none
# 如果安装中提示(X Sorry, Kubernetes 1.18.3 requires conntrack to be installed in root's path) 可执行以下命令安装
yum install conntrack -y
备注:如果想删除k8s,或者安装的时候出错,可以初始化系统环境, 只需要执行命令 minikube delete, 然后就可以重新安装了.