基于k8s的jenkins集群迁移

迁移原则:

  1. 保证迁移前后jenkins master deploy名称不变;

  2. jenkins中job元信息不变;做到用户无感知迁移;

  3. 各个jenkins deploy对应的service暴露的port保持不变。

需迁移的数据及方案:

  1. 迁移单位:jenkins deployment;Service;ServiceAccount; ClusterRoleBinding; ConfigMap; PVC;PV
  2. 方案:
    1. 通过yaml方式迁移主要的k8s 资源;在待迁移的集群里执行kubectl get xxx -n jenkins -o yaml > jenkinsxxxx.yaml;
    2. 在新集群中创建jenkins namespace;将取到的yaml文件,拷贝到新的集群;
    3. 将新集群的apiServer公钥;apiServer的静态IP地址及端口号,更新到configMap.yaml中;
    4. 将新集群StorageClass的ReclaimPolicy改为Retain;
    5. kubectl apply -f xxxx.yaml -n jenkins;此时所有jenkins pod都处于pending状态;
    6. 将旧集群PV的回收策略改为Retain;查找jenkins deploy使用的PV VolumeID;在控制台中解绑对应的云硬盘;解绑后的云硬盘会自动挂载至新集群中对应的PV上。
    7. 检查新集群,确定Pod状态是否正常;
    8. 查看新集群控制管理网卡的IP;将软开服务数据库中记录的jenkins IP更新。

你可能感兴趣的:(jenkins,kubernetes)