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

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

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

 

你可能感兴趣的:(devops)