Rancher 2.6 Docker安装并设置内网穿透外网访问

释放双眼,带上耳机,听听看~!
在生产环境中,一般不会让开发自己去服务器上执行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 2.6 Docker安装并设置内网穿透外网访问

我的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 2.6 Docker安装并设置内网穿透外网访问

外网访问rancher

Rancher 2.6 Docker安装并设置内网穿透外网访问

使用IP+端口访问会影响效率,接下来配置nginx,使用域名访问
Rancher 2.6 Docker安装并设置内网穿透外网访问

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之后,我们访问测试

Rancher 2.6 Docker安装并设置内网穿透外网访问

根据提示,我们去docker容器中获取密码

docker logs  container-id  2>&1 | grep "Bootstrap Password:"

#这里的containerd ID为docker ps获取的ID

Rancher 2.6 Docker安装并设置内网穿透外网访问

设置固定密码

Rancher 2.6 Docker安装并设置内网穿透外网访问

这里可以设置为外网访问域名,在后面k8s添加时采用内网ip的方式,减少frp tcp连接数 -->2022年11月26日05:03:20 新增说明

登陆成功后会默认给我们安装k3s
Rancher 2.6 Docker安装并设置内网穿透外网访问

接下来我们使用rancher获取目前的集群
Rancher 2.6 Docker安装并设置内网穿透外网访问

给rancher集群设置一个名称

Rancher 2.6 Docker安装并设置内网穿透外网访问

配置rancher连接k8s集群
Rancher 2.6 Docker安装并设置内网穿透外网访问

我这边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的地址,避免证书问题

Rancher 2.6 Docker安装并设置内网穿透外网访问

检查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 2.6 Docker安装并设置内网穿透外网访问

在Rancher中已经可以看到容器状态
Rancher 2.6 Docker安装并设置内网穿透外网访问

Rancher 2.6 Docker安装并设置内网穿透外网访问

Pod日志也可以正常查看到
Rancher 2.6 Docker安装并设置内网穿透外网访问

效果地址
https://rancher.frps.cn/

给TA打赏
共{{data.count}}人
人已打赏
Kubernetes

Kubeadm搭建高可用(k8s)Kubernetes v1.23.5集群

2022-6-19 18:41:33

CephGrafanaKubernetesprometheus

Prometheus Grafana使用Ceph持久化并监控k8s集群

2022-6-26 0:22:02

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索