Rancher

持续集成与持续部署宝典Part 4:创建持续部署流水线

心不动则不痛 提交于 2019-12-07 11:34:36
随着Docker项目及其相关生态系统逐渐成熟,容器已经开始被更多企业用在了更大规模的项目中。因此,我们需要一套连贯的工作流程和流水线来简化大规模项目的部署。 Rancher Labs准备了此持续集成与持续部署系列文章,共两万余字,希望能供企业参考如何利用诸如Docker和Rancher这类工具来创建属于企业的持续集成和持续部署流水线,并根据自己的实际情况和需求在这CI/CD流水线中也加入自定义的流程。 本文是此系列文章的最后一篇,我们将在本文中完成创建持续部署流水线的最后工作。本文内容包括创建持续部署流水线(发布Docker镜像、部署到集成环境、发布和部署一个新的版本)和部署策略(就地更新、蓝绿部署)。 创建持续部署流水线 我们已经创建好了测试环境,在前文中我们也构建好了CI流水线,由它来创建应用、将应用打包进容器、进行集成测试。现在我们将来到本系列文章的最终章,拓展CI流水线来创建一个持续部署流水线。 发布Docker镜像 我们首先将打包的镜像发布到Docker存储库中。方便起见,我们使用了一个公共DockerHub仓库,不过,对于实际的开发项目,我们还是建议将Docker镜像push到私有库中。下面我们在Jenkins中创建一个新的Free Style Project任务,点击New Item按钮,把任务命名为push-go-auth-image。完成了这些步骤后

SSH failed when building RancherOS with Packer

百般思念 提交于 2019-12-07 10:22:21
问题 I have an issue with Packer and RancherOS. I'm trying to build a custom rancherOS image with a cloud-config file. I'm working on MacOSX. I have this build.json file { "variables": { "vm_name" : "" }, "builders": [ { "type": "vmware-iso", "iso_url": "rancheros.iso", "guest_os_type": "other", "iso_checksum_type": "md5", "iso_checksum": "467caa8394684ba54e8731aed8480652", "output_directory": "output_rancheros", "ssh_wait_timeout": "30s", "shutdown_command": "sudo shutdown -h now", "disk_size":

rancher搭建+基本操作+web应用部署

ぃ、小莉子 提交于 2019-12-07 06:01:56
Rancher搭建 首先rancher需要安装了docker的linux环境,我的系统版本为 在docker的基础上启动rancher服务器,Rancher 服务器是一个 Docker image,所以其软件本身不需要安装,只需要执行 Docker 命令下载并且成功运行 Docker 服务器镜像即可。 执行命令 sudo docker run -d --restart=always -p 8080:8080 rancher/server 启动容器并指定端口,如果没有rancher/server镜像会自动下载。执行完成后查看镜像与容器运行情况: 以上步骤完成后,查看本机的ip地址,我的地址为192.1688.1.109,在浏览器输入 http://ip:8080/ ,登录到rancher官网,为安全起见,设置管理账户 然后进行添加主机操作,根据网站指引操作,生成一条命令,在docker中运行 $ sudo docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.5 http://192.168.1.109:8080/v1/scripts/9F78F0DF10BCF4216AC7

持续集成与持续部署宝典Part 3:创建集成环境

大城市里の小女人 提交于 2019-12-06 19:57:04
两万余字的系列干货长文,攻下持续集成与持续部署! 通过前两篇文章《持续集成与持续部署宝典Part 1:将构建环境容器化》和《持续集成与持续部署宝典Part 2:创建持续集成流水线》,我们使用Docker创建了一个集中管理的构建环境,它可以应用到任意数量的机器上。接着,我们将环境设置到了Jenkins CI上,自动化处理了源代码的持续构建、打包和测试。在本章中,我们将进一步对流水线进行研究(如下所示),了解如何将项目持续部署到一个长时间运行的测试环境中。除了自动验收测试外,它还将允许人工测试代码。有了这样的环境,你就可以在产品投入生产之前让你的客户或者QA(质量管理员)看到最新的变化。此外,它还是一个构建和部署到生产环境的好方法,我们将这一章中进行介绍。 创建应用程序环境 在我们构建并且测试了应用程序后,可以将它部署到一个长期运行的、潜在面向外部的环境中。这种环境要允许客户或者QA在产品投入生产前查看和测试最新的更改,它也是生产过程中一个重要步骤。有了它,我们能够发现在自动化集成测试中会隐藏起来、只有在真实环境才能发现的bug。我们通常把这样的环境称为QA或集成环境,当然你也可以自己命名。我们将通过以下步骤来创建集成环境: 在Rancher中创建一个集成环境 定义Docker Compose以及Rancher Compose模板 用Rancher创建应用程序堆栈

Scaling Docker containers in Rancher with different but persistent volumes

让人想犯罪 __ 提交于 2019-12-06 16:55:34
问题 I'm currently trying to bridge the gap between persistent, but unique volumes while scaling containers with Rancher (alternatively Docker Compose, since this is more of an abstract question). Take as an example a Minecraft server, I have a Service defined in Rancher/Compose which uses a named volume as its data/world directory (e.g. -v minecraft_data:/data where the Minecraft image loads its world files from this /data directory). The reason I'm using such a named volume, is that I want it to

How to connect to a kafka instance in a kubernetes cluster?

别来无恙 提交于 2019-12-06 12:19:16
问题 I just used rancher to deploy a kubernetes cluster and deployed kafka using rancher's cloud apps (If I'm correct, it's using helm charts to do this). Unfortunately, I'm unable to connect to it from outside. I just created an ingress pointing to the kafka-dtxkf-kafka service on port 9092. But still, it won't connect. My cluster is as follows: NAME READY STATUS RESTARTS AGE pod/kafka-dtxkf-kafka-0 1/1 Running 0 13m pod/kafka-dtxkf-kafka-1 1/1 Running 0 13m pod/kafka-dtxkf-kafka-2 1/1 Running 1

如何平滑优雅地在Rancher 2.x中升级cert-manager?

霸气de小男生 提交于 2019-12-06 11:55:07
作者: Nassos Michas丨European Dynamics SA, CTO 如果你正在使用由Rancher提供的Helm Chart在Rancher管理的Kubernetes集群中安装cert-manager,那么你最近也许收到了Let’s Encrypt发给你的提醒: 在集群中检查cert-manager的日志,你可以看到Let’s Encrypt拒绝更新证书的请求,因为“你的ACME客户端版本过旧,请升级到更新的版本”。那么,我们现在就开始吧! 使用Rancher提供的Helm Chart进行更新 我想你脑海里的第一想法应该和我的类似:使用相关的最新版本的Helm Chart升级cert-manager。大家可以不用考虑这个选项,因为Rancher提供的cert-manager Helm Chart目前最新的是0.5.2版本,所以别想着一键式升级啦! 使用官方Helm Chart升级 参考链接: https://forums.rancher.com/t/update-on-cert-manager-application-in-the-catalog/15598 计划十分简单:只需要将Rancher提供的cert-manager的Helm Chart移除,并使用Helm中由Jetstack维护的chart替换即可。 在开始之前,我们需要保持谨慎。从v0.5

Rancher2.x流水线自动化部署

为君一笑 提交于 2019-12-06 09:49:07
1、概述   由于一些项目使用了rancher进行部署发布,所以使用Rancher的流水线自动部署功能实现CICD,从gitlab、harbor安装,到流水线配置和中间的一些问题一一进行详细介绍解答。 2、准备工作   前期的Docker和Rancher安装就不在描述,直接进入正题   2.1 gitlab安装      gitlab安装很简单,配置到相应pvc和external_url即可       yaml文件如下       apiVersion: apps/v1beta2 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" field.cattle.io/creatorId: user-ff6zz field.cattle.io/publicEndpoints: '[{"addresses":["10.10.1.3"],"port":31901,"protocol":"TCP","serviceName":"gitlab:gitlab-nodeport","allNodes":true}]' creationTimestamp: "2019-12-02T12:48:28Z" generation: 2 labels: cattle.io/creator: norman

Docker常用命令和功能介绍

丶灬走出姿态 提交于 2019-12-06 07:07:54
可以搜索 dockerfile 定制创建一个redis镜像 image 表示镜像 docker search 搜索镜像的名称和标签 docker 所在目录/var/lib/docker docker的镜像文件存放于 /var/lib/docker/graph/(可以查看repositories.json这个文件) 和docker images查看的结果是一样的,Docker是使用repositories JSON文件来记述镜像信息的,此JSON文件包含了仓库名、标签、以及标签对应的镜像ID FROM 指定基础镜像(需要先pull一个镜像或者dockerfile里面把yum install命令加进去)通过dockerfile images查看是否有基础镜像 应该是pull一个镜像后就可以在from后面指定用这个镜像了,而不是安装配置一个基础软件(因为pull代替了这步操作) 拿 Dockerfile 本地构建也要先拉(pull)下来 Docker Registry: Registry是Docker镜像的中央存储仓库(pull/push) 通过Docker pull命令可以把Registry上的docker镜像,下载到服务器本地 通过docker push命令可以把服务器本地的docker镜像,上传到Registry上 Dockerfile是自动构建docker镜像的配置文件

rancher 2.2.X HA 部署K8S

▼魔方 西西 提交于 2019-12-06 06:53:45
介绍 本文主要目的在于记录rancher ha集群搭建步骤,内容包括系统配置、docker安装、k8s安装、rancher ha安装等。 服务器环境信息: 节点名称 IP OS 安装软件 Master 192.168.100.22 Centos7.6 nginx Node1 192.168.100.31 Centos7.6 etcd, docker, k8s Node2 192.168.100.32 Centos7.6 etcd, docker, k8s Node3 192.168.100.33 Centos7.6 etcd, docker, k8s 环境设置 操作系统文件限制 vi /etc/security/limits.conf 在文件末尾添加以下内容: 1 2 3 4 root soft nofile 655350 root hard nofile 655350 * soft nofile 655350 * hard nofile 655350 关闭防火墙 1 2 systemctl stop firewalld systemctl disable firewalld 关闭setlinx 将 SELINUX 值设置为disabled: 1 2 vim /etc/selinux/config SELINUX=disabled 关闭swap 注释或删除swap交换分区:vi