基于Rancher+K3S(K8S)环境导出Charts(需要helm)、docker镜像、POD的yaml

有时候我们需要从一个环境中,把当前的Helm-Charts、对应docker镜像文件,甚至有一些通过其他手段搞出来的POD的yaml导出来,然后在另一个环境中使用

这里面就是一些我们自己用到的工具,分享出来,自愿使用或修改。

有问题不负责 ^_^。

所有内容都在 https://github.com/wangxi83/migration_util


1- 导出镜像(特别说明:“2”中更新了在获取charts的同时导出charts对应的镜像的方法

File: ./save-images-to-tar/save-images.sh

Usage:

1) list your images
docker images | grep <some grep>|awk '{printf("%s:%s\n",$1,$2)}'  >> images.txt
docker images | grep <some grep>|awk '{printf("%s:%s\n",$1,$2)}'  >> images.txt
.... and more images 

2) save them to a single tar file
./save-images-to-tar/save-images.sh --image-list ./images.txt

a all-images.tar.gz file will craete. We can docker load from it

Fearther, you can use ‘./save-images-to-tar/load-images-registry.sh’ to upload images to a registry


2- helm-charts

File: ./getcharts.sh

Usage:

help ()
{
    echo  ' ================================================================ '
    echo  ' 在当前目录的 charts-out-put 目录中,创建rancher中特定的charts最新版本 '
    echo  ' --rancher-server: 必选,rancher的访问地址'
    echo  ' --rancher-api-key: 必须。从rancher的api&key中获取的apikey'
    echo  ' --rancher-project-id:必须。在rancher上点击一个项目,从地址栏中取得的项目id'
    echo  ' --harbor-server: 必须。harbor的地址'
    echo  ' --save-image:可选,默认false,设置chats里面对应的docker镜像输出目录。如果设定,则会把images导出到charts-out-put/images '
    echo  ' 使用示例,导出project-id=c-bsv8l:p-rcv69的所有charts,并且把镜像输出到images目录'
    echo  ' ./getcharts.sh --rancher-server=dbu.rancher.com --rancher-api-key=token-9zqtt:lj2j78jqjcqmgdx8n4kftn5j79rmq99j7hn548q8jc54shw9t8v2bm \'
    echo  ' --rancher-project-id=c-bsv8l:p-rcv69  --harbor-server=harbor.sobey.com --save-image=true'
    echo  ' ================================================================'
}


after this, all charts will downloaded to dir ./charts-out-put ,如果传入了–save-image=true,则会导出所有对应的镜像到 ./charts-out-out/images中


3- pod-yamls

File: ./getyaml.sh

Usage:

help ()
{
    echo  ' ================================================================ '
    echo  ' --kubectl:optional。the path to kubectl '
    echo  ' --type: must。k8s resourcetype,ex. pods。'
    echo  ' --ns:must。k8s namespace'
    echo  ' --kubeconfig:optional。Kubeconfig file'
    echo  ' --grep: optional。some grep workds '
    echo  ' 使用示例:'
    echo  ' ./getyaml.sh --type=pods --ns=sobeyficus '
    echo  ' ================================================================'
}

after this, all yamls will download to ./getyamlout. And then we can kubectl apply -f ./getyamlout to apply them to another cluster

### K3s 集群与 Rancher 的集成 #### 安装 Rancher 到现有的 K3s 集群 对于希望利用现有基础设施的用户来说,可以直接在已有的 K3s 集群之上安装 Rancher。这可以通过 Helm 或者直接通过 Docker 来完成。 要使用 Helm 安装 Rancher: ```bash helm repo add rancher-stable https://releases.rancher.com/server-charts/stable kubectl create namespace cattle-system helm install rancher rancher-stable/rancher \ --namespace cattle-system \ --set hostname=rancher.my.org ``` 上述命令会将 Rancher 安装到名为 `cattle-system` 的命名空间内,并设定主机名以便访问[^1]。 #### 将 K3s 集群注册至独立的 Rancher 实例 如果已经有一个独立运行着的 Rancher 实例,则可以将新的或现存的 K3s 集群加入其中进行统一管理。登录到 Rancher Web UI 后,导航到集群页面,选择创建新集群或是导入已有节点组成的集群。按照界面上给出的具体指令操作即可实现连接[^2]。 #### 使用 Rancher 管理多 K3s 集群 一旦成功关联了至少一个 K3s 集群之后,便能够借助于 Rancher 平台所提供的集中式仪表板来进行跨多个 K3s 集群的操作。这些功能涵盖了但不限于应用部署、资源配额定义以及安全策略实施等方面的工作流自动化支持[^3]。 #### 自定义网络插件配置 当需要自定义网络方案时,可以在启动 K3s 之前禁用默认的容器网络接口 (CNI),并通过指定参数如 `--flannel-backend=none` 来做到这一点。接着依照所选 CNI 解决方案的要求调整其配置文件;例如采用 Calico 作为替代品的话就需要编辑对应的 YAML 文件以确保 IP 转发等功能正常运作[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sb熙哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值