君不见长松卧壑困风霜,时来屹立扶明堂。这篇文章主要讲述3个小时搭建全套最新高可用 kubernetes 学习环境相关的知识,希望能为你提供帮助。
@[TOC]
1. 目的和环境说明目的:搭建一套拥有 ceph 集群并能直接用于开发、学习的高可用 kubernetes集群
虚拟机:3台
每台硬件配置:cpu 2核及以上、内存 8G 及以上、硬盘 2 块(其中一块用于 ceph osd)
每台虚拟机系统安装 CentOS7,除了 /boot
分区,其余空间均分配给根分区,要求虚拟机能访问互联网并正常解析域名。
工具:
kubernetes:v1.23.1
helm:v3.8.0
charts:
metallb:2.6.0
ingress-nginx:4.0.15
rook-ceph:v1.8.2
rook-ceph-cluster:v1.8.2
kubernetes-dashboard:5.1.1
kubeapps:7.7.1
2. 一键安装 kubernetes 集群
2.1 初始化集群本人的一键安装集群脚本:https://github.com/ygqygq2/kubeadm-shell
3台虚拟机设置好hostname
和 hosts/etc/hosts
10.111.3.53 master1
10.111.3.54 master2
10.111.3.55 master3
设置
config.sh
如下:文章图片
在
master1
上执行sh kubeadm_install_k8s.sh
脚本完成后,会自动创建 3 master 节点的 高可用 kubernetes 集群。
2.2 安装 flannel 网络插件【3个小时搭建全套最新高可用 kubernetes 学习环境】这里使用 flannel 网络插件,当然你也可以选择其它网络插件。
mkdir -p /data/yaml
cd /data/yaml
wget https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.yml
2.3 安装 helm 命令
cd /tmp
wget https://get.helm.sh/helm-v3.8.0-rc.1-linux-amd64.tar.gz
tar -zxvf helm-v3.8.0-rc.1-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/sbin/
chmod a+x /usr/local/sbin/helm
使用
helm repo add bitnami https://charts.bitnami.com/bitnami
等将以下 repo 添加好。文章图片
3. helm 安装各组件 3.1 阿里云申请用到的免费 ssl 证书kubernetes dashboard 和 ceph dashboard 默认使用 https 方式访问,所以需要用到 ssl 证书,如修改成 http 方式(非安全)访问也可,本文不作这方面描述。
申请好免费证书,并下载 nginx 格式证书文件
文章图片
上传好证书文件并解压
文章图片
将证书文件创建成 tls secret,
kubectl create ns rook-ceph# 创建 rook-ceph 命名空间
kubectl create secret tls ceph.k8snb.com --cert 7133599_ceph.k8snb.com.pem --key 7133599_ceph.k8snb.com.key -n rook-ceph
kubectl create secret tls dashboard.k8snb.com --cert 7123996_dashboard.k8snb.com.pem --key 7123996_dashboard.k8snb.com.key -n kube-system
3.2 安装 metallbMetalLB is an open source, rock solid LoadBalancer. It handles the
ServiceType: Loadbalancer
,即提供一个内网负载均衡器,为 LoadBalancer
类型的 service
提供一个可访问的负载均衡 IP。mkdir -p /data/helm
helm fetch --untar bitnami/metallb
cd metallb
mkdir kube-system# 按目录区分安装的命名空间
rsync -avz values.yaml kube-system/
vim kube-system/values.yaml
修改配置按如下图配置一个负载均衡 ip 池:
文章图片
安装
helm install metallb -n kube-system -f kube-system/values.yaml .
3.3 安装 ingress-nginx这里使用官方 ingress-nginx。
cd /data/helm
helm fetch --untar ingress-nginx/ingress-nginx
cd ingress-nginx
mkdir kube-system
rsync -avz values.yaml kube-system/
vim kube-system/values.yaml
修改配置和镜像仓库(主要是国内访问不了谷歌镜像仓库)文章图片
文章图片
文章图片
文章图片
安装
helm install ingress-nginx -n kube-system -f kube-system/values.yaml .
3.4 安装 rook-cephrook 不作过多介绍,你可以访问其官网查看:https://rook.io/docs/rook/v1.8/
cd /data/helm
helm fetch --untar rook/rook-ceph
cd rook-ceph
mkdir rook-ceph
rsync -avz values.yaml rook-ceph/
vim rook-ceph/values.yaml
修改配置和镜像仓库github 上发现一个谷歌镜像同步到 docker hub的功能,在他这里提 issues,即可完成同步,然后按其说明,将仓库替换下就可以了。以下为我提的 issues,已经完成镜像同步,直接使用即可。
文章图片
文章图片
安装
helm install rook-ceph -n rook-ceph -f rook-ceph/values.yaml .
3.5 安装 rook-ceph-cluster
cd /data/helm
helm fetch --untar rook/rook-ceph-cluster
cd rook-ceph-cluster
mkdir rook-ceph
rsync -avz values.yaml rook-ceph/
vim rook-ceph/values.yaml
修改配置文章图片
文章图片
文章图片
安装
helm install rook-ceph-cluster -n rook-ceph -f rook-ceph/values.yaml .
进入 toolbox 修改 ceph dashboard admin 用户密码
kubectl get pod -n rook-ceph
查看 toolbox podkubectl exec -it toolbox的pod名 -n rook-ceph /bin/bash
进入 toolbox pod修改 dashboard 用户密码
echo password >
/tmp/p
ceph dashboard ac-user-set-password admin -i /tmp/p
添加域名解析或本地 hosts 都可。
文章图片
现在即可通过浏览器登录 cpeh dashboard。
文章图片
3.6 安装 kubernetes dashboard
cd /data/helm
helm fetch --untar kubernetes-dashboard/kubernetes-dashboard
cd kubernetes-dashboard
mkdir kube-sytem
rsync -avz values.yaml kube-system/
vim kube-system/values.yaml
修改配置文章图片
文章图片
文章图片
文章图片
安装
helm install dashboard -n kube-system -f kube-system/values.yaml .
创建 k8s 集群访问帐号(这里为了方便学习,直接使用管理员),并获取登录 token
kubectl create serviceaccount admin -n kube-system
kubectl create clusterrolebinding admin --clusterrole=cluster-admin --serviceaccount=kube-system:admin
kubectl get secret -n kube-system|grep admin
kubectl describe secret 上面的secret名 -n kube-system# token 即为登录 token
浏览器访问并登录
文章图片
3.7 安装 kubeapps
cd /data/helm
helm fetch --untar bitnami/kubeapps
cd kubeapps
mkdir kubeapps
rsync -avz values.yaml kubeapps/
vim kubeapps/values.yaml
修改配置文章图片
安装
helm install kubeapps -n kubeapps -f kubeapps/values.yaml .
浏览器访问并登录
文章图片
推荐阅读
- #yyds干货盘点#CCNA学习记录7
- Win10照片查看器的系统进程是啥?
- Win10系统如何清理注册表垃圾以提高系统运行速度
- Win10设置应用程序运用麦克风的技巧
- 如何运用u盘安装win10系统
- Win10如何将开始菜单程序下文里的应用固定到开始屏幕上
- 升级win10 9926长时间卡在检查更新怎样办?
- Win10任务管理器性能小窗口模式查看性能信息图文详细教程
- Win10如何联机取得更多主题