在生产环境中,一般不会让开发自己去服务器上执行kubectl工具。那么就需要一个图形化工具,Rancher 是为使用容器的公司打造的容器管理平台。Rancher 简化了使用 Kubernetes 的流程,开发者可以随处运行 Kubernetes(Run Kubernetes Everywhere),满足 IT 需求规范,赋能 DevOps 团队。
Rancher介绍
Rancher 是为使用容器的公司打造的容器管理平台。Rancher 简化了使用 Kubernetes 的流程,开发者可以随处运行 Kubernetes(Run Kubernetes Everywhere),满足 IT 需求规范,赋能 DevOps 团队。
Rancher 1.x 最初是为了支持多种容器编排引擎而构建的,其中包括 Rancher 自己的容器编排引擎 Cattle。但随着 Kubernetes 在市场上的兴起,Rancher 2.x 已经完全转向了 Kubernetes。Rancher 2.x 可以部署和管理在任何地方运行的 Kubernetes 集群。
说明:下文中所有的“Rancher”代指的都是 Rancher 2.x。
Rancher 可以创建来自 Kubernetes 托管服务提供商的集群,自动创建节点并安装 Kubernetes 集群,或者导入任何已经存在的 Kubernetes 集群。
Rancher 通过支持集群的身份验证和基于角色的访问控制(RBAC),使系统管理员能够从一个位置控制全部集群的访问。Rancher 可以对集群及其资源进行详细的监控和并在需要时发送告警,也可以将容器日志发送给外部日志系统,并通过应用商店与 Helm 集成。如果您具有外部 CI/CD 流水线系统,则可以将其与 Rancher 对接,如果没有,Rancher 也提供了简单易用的流水线来帮助您自动部署和升级工作负载。除此之外,Rancher 还有很多开箱即用的功能来帮助您更好的管理集群和业务应用,例如多集群应用,全局 DNS,服务网格,安全扫描,集群模版和基于 OPA 的策略管理等功能。
总而言之,Rancher 是一个全栈式的 Kubernetes 容器管理平台,也是一个可以在任何地方都能成功运行 Kubernetes 的工具。
我的rancher演示地址: https://rancher.frps.cn
安装
为Rancher创建持久化目录
[root@ops ~]# mkdir /data/rancher
安装docker
yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin systemctl start docker
启动rancher容器
docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged -v /data/rancher:/var/lib/rancher/ rancher/rancher:latest #端口使用80和443
检查容器运行状态
[root@ops ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f1a12dbb8a8d rancher/rancher:latest "entrypoint.sh" 16 seconds ago Up 14 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp lucid_shirley
由于我个人是想外网访问rancher,我这边使用frp进行端口映射
frpc添加下面一行
[rancher-ops] type = tcp local_ip = 192.168.31.101 local_port = 443 remote_port = 1443
重启frpc
外网访问rancher
使用IP+端口访问会影响效率,接下来配置nginx,使用域名访问
nginx upsteam需要添加ws支持
proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade;
upstream 需要配置https,rancher默认强制https
设置完upstream之后,我们访问测试
根据提示,我们去docker容器中获取密码
docker logs container-id 2>&1 | grep "Bootstrap Password:" #这里的containerd ID为docker ps获取的ID
设置固定密码
这里可以设置为外网访问域名,在后面k8s添加时采用内网ip的方式,减少frp tcp连接数 -->2022年11月26日05:03:20 新增说明
登陆成功后会默认给我们安装k3s
接下来我们使用rancher获取目前的集群
给rancher集群设置一个名称
配置rancher连接k8s集群
我这边rancher已经映射公网了,所以我使用公网apply或者curl都可以
我这里建议使用curl,没有整数使用curl比较合适
curl --insecure -sfL https://192.168.31.101/v3/import/zxfqmh2vzld57cfl6pl7lp49xn9bxlkvhfwckpgx2n9d7dcdzpqszs_c-m-4vv2sd7j.yaml | kubectl apply -f - #添加集群的时候不要写nginx地址,最好直接写容器rancher的地址,避免证书问题
检查pod运行状态
[root@k8s-01 ~]# kubectl get pod -n cattle-system NAME READY STATUS RESTARTS AGE cattle-cluster-agent-5bdc9696b-5v457 1/1 Running 0 2m8s cattle-cluster-agent-5bdc9696b-nzh4q 1/1 Running 0 4m3s
检查rancher状态
在Rancher中已经可以看到容器状态
Pod日志也可以正常查看到
效果地址https://rancher.frps.cn/
相关文章:
- Kubernetes容器运行时弃用Docker转型Containerd
- Docker 镜像及Docker仓库配置 [四]
- zabbix监控Pod Restart状态
- 基于Kubernetes Gitlab CICD