本地从零开始搭建k8s+docker+jenkins

本文详细介绍了如何在本地从零开始搭建k8s、docker和jenkins的完整流程,包括虚拟机安装、docker配置、jenkins安装过程中遇到的问题及解决方法,如docker-proxy的配置、端口冲突处理、jenkins语言切换等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

其他文章有记录前期的准备

1.vmware准备虚拟机,一堆坑请见其他文章

2.安装jenkins请见jenkins实践及docker实践

3.docker相关请见docker实践

 

等有时间把这些汇总在这一篇文章内,从零开始搭建一个完整的k8s+docker+jenkins的流程,并生成一个脚本或者镜像

==============================================================================

1.虚拟机安装:

从163下载的额镜像安装后没有eth0,ip a没ip且不能来接外网,具体办法见其他文找机会汇总在这里

mark一下,从163镜像站下载的镜像是没啥东西的,需要安装的东西有:

yum install -y net-util

===============================================================================

2.docker

=================================================================

3.安装jenkins:可参考官方文档

服务器512刚刚凑合

安装 yum install,选择docker而不是docker client

执行下面代码

docker run \
-u root \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean

 

这个时候会报一个错误:/usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint gallant_mclean (5ad14ff0ee6d58001cf64188306233b8bfa5e35bf052a60e768aa38509fab080): exec: "docker-proxy": executable file not found in $PATH

 

解决方案:

cd /usr/libexec/docker/        ln -s docker-proxy-current docker-proxy

还有一个连接也直接ln上,否则后续也会报这个错。

光改链接没有用,还需要在path内配置/usr/libexec/docker/的路径,否则不识别,这就是为啥用基础景象搭建环境,能测试出所有的问题。export也不行,至于原因,可能是没有同步或者需要重新docker,但是的确试过重启。最后还是通过配置到/etc/profile里面然后source一下这个文件实现的

再执行一次那堆run,报新的错误,因为之前执行过一次导致端口50000被占用,然后咋办?

报错内容:

/usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint friendly_poitras (fd438b6f96fbe999b665749333a5a30a70cb7af2540adeaf4a6105983bde7c72): Bind for 0.0.0.0:50000 failed: port is already allocated

解决方案 及原因:

重启docker systemctl restart docker即可。或者ps -ef |grep docekr ,然后kill掉。这个一步需要改进怎么才能清楚失败的占用,尝试过docker system prune,未奏效。必须重启。待改进

启动jenkins的时候会卡在一个空白页面,为啥?因为默认设置是访问google。需要进入docker内,docker exec -it 容器名称 /bin/bash ,然后进入var,jenkinshome,进到update,然后修改defau.json里面的google换成baidu之类的

之后就成功了。

进入后发现jenkin是中文界面,不爽,怎么切换成英文装个逼?浏览器设置中设置为英语,jenkins就会显示成英语。浏览器不想改但是又想切成中文咋办?装一个插件,在jenkins里设置local设置为中文即可

至此,jenkins搭建完毕

==========================================================

docker 技巧:

docker的挂载docke run -v xxx:/xxx/xxx  这个命令不简单,当虚拟机的xxx是一个相对路径时,绝对不是指相对于当前路径,而是相对于/var/lib/docker/volumes/ 山哥威武。

还有一个技巧 docker inspect xxx镜像名称,查看这个镜像的一些信息,比如mount到了啥鬼

当执行docker system prune的时候,会把这些挂在也全部删除,在/var/lib/docker/volumes下的文件就被删了,比如jenkins-data

 

搭建一个完整的基于Jenkins、GitLab和Kubernetes的CI/CD流水线,首先需要确保你有一个适合的环境来安装和配置这些工具。以下是一个详细的步骤指南,可以帮助你完成整个流程: 参考资源链接:[自动化CI/CD:Jenkins+Gitlab驱动K8S集群部署](https://wenku.youkuaiyun.com/doc/88m43w6p1r?spm=1055.2569.3001.10343) 1. **基础环境安装**: - **安装DockerK8S集群**:在你的服务器或云平台上安装Docker,并部署Kubernetes集群。这将作为你的应用程序运行的基础平台。 - **搭建私有Docker Registry**:为了存储和分发你的应用镜像,你可以选择安装一个私有Docker Registry,可以使用Docker官方提供的Registry镜像。 - **安装Jenkins**:选择一个适合的Jenkins镜像,并在你的K8S集群中部署它。完成安装后,初始化Jenkins并安装相关的插件,如Git、Kubernetes、Docker等。 - **配置GitLab**:在你的服务器或云平台上安装GitLab,并创建项目。确保你的开发团队能够提交代码到这个项目。 2. **Jenkins配置流水线**: - **全局配置**:在Jenkins中设置与GitLab仓库的连接,以及与K8S集群的SSH连接。在GitLab项目中配置Webhook,以便在代码提交时能够触发Jenkins任务。 - **构建流水线配置**:在Jenkins中创建一个新的任务,配置源代码管理(GitLab仓库),并设置构建触发器为Webhook。 - **选择构建策略**:你可以选择直接同步代码到K8S集群或者将代码打包到Docker镜像中,并通过Kubernetes插件部署到集群。 - **部署和监控**:完成构建策略的配置后,设置自动化部署任务。利用Kubernetes插件将应用部署到K8S集群,并确保Jenkins能够监控构建和部署的状态。 在整个过程中,确保测试每一个步骤,以便在发生问题时能够快速定位并解决。完成这些步骤后,你的CI/CD流水线应该能够实现在代码提交到GitLab仓库后,自动构建并部署到Kubernetes集群。这将显著提高你的开发和运维效率,减少手动操作的需求。 为了更深入地理解如何使用Jenkins与GitLab和Kubernetes集成,你可以参考《自动化CI/CD:Jenkins+Gitlab驱动K8S集群部署》。这份资源提供了详细的实践指南,涵盖了从安装到部署的全流程,以及如何解决实际中可能遇到的问题。 参考资源链接:[自动化CI/CD:Jenkins+Gitlab驱动K8S集群部署](https://wenku.youkuaiyun.com/doc/88m43w6p1r?spm=1055.2569.3001.10343)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值