环境搭建
1 篇文章0 订阅
订阅专栏
本文主要介绍了基于Rancher的K8S集群快速搭建,方便中小企业充分利用每台机器的性能,更快捷的部署自己的应用,更简单的水平扩展自己的服务。也包含了Harbor管理Docker本地镜像,整合K8S一套。
1.集群规划
主机 |
ip |
部署环境 |
s101 |
192.168.80.101 |
docker、k8s-all |
s102 |
192.168.80.101 |
docker、k8s-worker |
s103 |
192.168.80.101 |
docker、k8s-worker |
s201 |
192.168.80.201 |
docker、rancher、docker-compose、harbor |
2.集群基础环境准备
- 1.jdk8安装。
- 2.防火墙问题解决。
- 3.所有机器可以访问外网。
- 4.节点时间同步,否则在rencher中安装k8s会报错,可以参考这篇博客解决。5.全文操作都基于centos7的root用户。
3.docker安装(每个节点)
3.1docker旧版本的卸载
sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-selinux
docker-engine-selinux
docker-engine
12345678910
3.2docker安装
通过docker官网的安装脚本安装最新的docker,后面的harbor需要比较新版本的docker,否者无法安装。这里可以翻墙操作,否则可能安装失败。
curl -fsSL https://get.docker.com/ | sh
1
3.3镜像加速
获取阿里云加速地址,在阿里云控制台的容器镜像服务中找到
vi /etc/docker/daemon.json
1
3.4重启全部docker
systemctl restart docker
1
4.rancher安装
在s201上执行下面命令
#这里也可以指定对应版本
docker pull rancher/rancher
docker image ls
docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:stable
1234
webUI访问 https://192.168.80.201/
5.k8s安装
5.1使用rancher安装k8s集群
在设置集群名字后点击下一步后来到以下界面选中三个角色后在s101主机上执行,仅仅选择worker在s102和s103上执行。
一段时间后可以看到下面界面(由于我这里网络原因等待了30min)。
5.2常见问题的解决
- 中途可能遇到网络原因下载中断,如果在rancher中出现注册字样说明只需要等待即可,可能持续半小时,可以通过网络监视来判断是否rancher下载。如果一直未不限注册字样,在rancher中复制的命令没有执行完可以crtl+c结束后重新执行。
- 要是rancher中有报红可能需要清理docker了,如果docker中有其他服务可以筛选后删除(下面命令亲测过)
docker stop $(docker ps -aq)
docker system prune -f
docker volume rm $(docker volume ls -q)
docker image rm $(docker image ls -q)
rm -rf /etc/ceph
/etc/cni
/etc/kubernetes
/opt/cni
/opt/rke
/run/secrets/kubernetes.io
/run/calico
/run/flannel
/var/lib/calico
/var/lib/etcd
/var/lib/cni
/var/lib/kubelet
/var/lib/rancher/rke/log
/var/log/containers
/var/log/pods
/var/run/calico
1234567891011121314151617181920
6.harbor安装
6.1下载离线安装包
- Harbor的官方仓库 可能需要翻墙
- docker-compose官方仓库
- harbor版本1.10.4
- docker-compose版本1.26.2
- docker版本19.03.12
6.2配置docker-compose
把下载好的docker-compose直接放在解压后的harbor的HOME下即配置完成
6.3配置harbor.yml
只需要修改下面三点
6.4安装
#准备环境
./prepare
#安装harbor
./install.sh
12345
安装成功,重启即可
关闭Harbor
./docker-compose down
启动Harbor
./docker-compose up -d
12345
6.5访问webUI
192.168.80.201:88
账号密码默认是admin
Harbor12345
7.k8s集成harbor
7.1docker中配置私有仓库harbor的授权(4台全部配置)
vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://tgh5c2qz.mirror.aliyuncs.com",
"https://hub-mirror.c.163.com"
],
"insecure-registries": [
"192.168.80.201:88"
]
}
1234567891011
7.2重启全部节点的Docker
systemctl restart docker
1
执行以下命令
kubectl create secret docker-registry registry-secret --namespace=default
--docker-server=http://192.168.80.201:88
--docker-username=admin
--docker-password=Harbor12345
1234
其他有关命令
kubectl get secret
kubectl delete secret registry-secret
12
8.Dockerfile制作镜像推送到harbor
8.1下载java基础镜像
docker pull frolvlad/alpine-oraclejdk8
1
vim Dockerfile
FROM frolvlad/alpine-oraclejdk8
ADD common-0.1.jar common-0.1.jar
ADD data_dispose-0.1.jar data_dispose-0.1.jar
ENTRYPOINT ["/bin/sh", "-c", "java $JAVA_OPTS -jar /data_dispose-0.1.jar"]
123456
k8s-1.0-SNAPSHOT.jar放在Dockerfile所在目录下执行得到demo:latest本地镜像
在rancher中新建一个项目
docker build -t demo:latest .
本地打包的镜像修改成一个符合 harbor格式的镜像名,之后上传这个镜像。
docker tag demo:latest 192.168.80.201:88/dmr/demo:v1.0
docker login --username=admin http://192.168.80.201:88
docker push 192.168.80.201:88/dmr/demo:v1.0
12345
当然这里也可以利用Maven直接打包到Harbor上
9.rencher操作k8s拉取镜像并运行
指定镜像地址和服务名字
大约1s后可能就会部署成功便成Active状态
至此,Rancher管理K8s的一套搭建完成。可以简单的理解为Rancher是一个可以简单的搭建,管理,监控K8s的服务,而Harbor只是一个私有的镜像仓库而已。
总结
随着当前工艺水平越来越高,集成化的程度越来越好,单台机器的资源越来越充足,资源利用不充分是必然的结果。合理的管理这些硬件资源,虚拟化,容器化技术可以理解为最佳方案。K8s强大而稳定的资源编排能力被各大公司广泛应用。但是要想直接使用k8s还是要有一定的运维能力,而Rancher这个开源的企业级容器管理平台中有丰富组件,大大简化了容器化的过程,部署一套K8s的集群仅仅需要几分钟,可视化部署,监控,管理大大简化了开发,每个人都可以在几分钟内上手。