本专栏旨在发现一个问题,解决一个问题,欢迎评论区提出一个问题,欢迎订阅,持续更新。
1: 先搞3台实验使用服务器
安全组配置
网络类型 | 授权方向 | 授权策略 | IP协议 | 端口范围 | 优先级 | 源IP地址段 | 描述信息 |
intranet | ingress | Accept | TCP | 30000/32767 | 1 | 0.0.0.0/0 | k8s application |
intranet | ingress | Accept | TCP | 443/443 | 1 | 0.0.0.0/0 | https |
intranet | ingress | Accept | TCP | 80/80 | 1 | 0.0.0.0/0 | http |
intranet | ingress | Accept | TCP | 22/22 | 100 | 0.0.0.0/0 | System created rule. |
intranet | ingress | Accept | ICMP | 1 | 100 | 0.0.0.0/0 | System created rule. |
2:所有主机安装docker
填自己的加速域名哈,没有的可以去阿里云开发者去申请,免费的。
iptables -F
yum -y install docker
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://b******.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
3: 创建一个NAS系统(用作持久化存储)
4: 挂载NAS系统
添加一个挂载点
挂载到master主机的/mnt/cloud/nfs 目录
5: 域名配置
拿出事先准备好的域名, 解析到master。
然后去ssl申请下免费证书,这个很快,几分钟就ok。完事把证书下载下来
5: 安装rancher
将证书下载配置到目录 且名字一致。三个都要的,这是两套证书,一个是访问的,一个是节点的。
在master上执行,/mnt/cloud/nfs 是持久化的目录。
mkdir -p /mnt/cloud/nfs/docker/rancher_home/
mkdir -p /mnt/cloud/nfs/docker/rancher_home/auditlog
docker run -d --privileged --restart=unless-stopped -p 80:80 -p 443:443 -v /mnt/cloud/docker/rancher_home/rancher:/var/lib/rancher -v /mnt/cloud/docker/rancher_home/auditlog:/var/log/auditlog -v /mnt/cloud/ca:/etc/rancher/ssl --name rancher rancher/rancher:v2.5.11 --no-cacerts
7:访问
k8s.818cloud.cn
配置rancher密码后登陆
8: 注册节点
在控制台创建集群,注册节点。
在下面执行
sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.5.11 --server https://k8s.test.818cloud.cn --token lv2k9z6r95lbtmjdfsxw4vhwlv4cf96bzp2ztqqhd6hzg4p9dz28kf --etcd --controlplane --worker
9:域名自定义配置
将域名(*)解析到任意一个master节点的ip 也可以开个nginx 负载到你的所有的master集群上
如我的是解析到这里
10: 配置持久化
新建目录到此
复制NAS挂载点地址,挂载一个。配置 如图
在集群的PVC处绑定
11:发布一个前端
阿里云上一个商城的
镜像地址为:docker.io/bitnami/nginx:1.16.1-debian-10-r0
将NAS的数据卷映射进来
配置动态域名
在负载均衡中添加一个解析 ,因为 *.818cloud.cn 都被解析过来,能处理流量的分发。
新建后访问
这是一个入门课程。旨在从0到1搭建自己的个人容器编排平台。
关于私有镜像仓库,可以在rancher直接部署harbor,然后配置密钥
关于服务端部署,可以通过载入jar程序或者打包docker直接跑。
关于https,可以直接在密文->证书中配置。
关于增加服务器,买好了服务器,集群直接添加节点即可。一般而言,节点越多,越不容易出错。
关于弹性,是直接支持的,使用HPA即可。
关于数据库,一定选择高性能的NAS存储。
关于应用商店,2.5.1有内置阿里云的apphub,可以在商店设置中激活。
关于 devOps,服务端推荐使用docker file + kubectl 远程重启。
如果是mac也可以写脚本scp jar包,扔进去kubectl远程重启。这种方式就是可以将打包权启动权放在本地,如果是前端的devOps,直接scp替换掉文件即可。如果需要纯自动化的devOps,请使用rancher的流水线,那个太慢,并不推荐,也可能是我太穷。