设为首页 收藏本站
查看: 1955|回复: 0

[经验分享] docker集群(二)

[复制链接]

尚未签到

发表于 2019-2-20 12:30:21 | 显示全部楼层 |阅读模式
  http://blog.运维网.com/mysky0708/2298049
承接上文,在生产中如何安全的链接docker主机呢?我们采用TLS秘钥方式。
步骤:
第一部分:首先在docker主机上生成秘钥,保存到指定地方;
第二部分:在管理节点(portainer)上,指定上述秘钥,添加节点。
  具体实施过程:
第一部分代码如下

read -s PASSWORD   //定义一个密码变量
read SERVER   //注意主机名变量要与系统对应
cd /etc/docker   //切换到生产密钥的目录
openssl genrsa -aes256 -passout pass:$PASSWORD -out ca-key.pem 2048
openssl genrsa -out server-key.pem 2048
openssl req -subj "/CN=$SERVER" -new -key server-key.pem -out server.csr
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem //注意主机名要与为上面的SERVER变量一致
openssl x509 -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out server-cert.pem
openssl genrsa -out key.pem 2048
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
sh -c 'echo "extendedKeyUsage=clientAuth" > extfile.cnf'
openssl x509 -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out cert.pem -extfile extfile.cnf
chmod 0400 ca-key.pem key.pem server-key.pem   //更改密钥权限
chmod 0444 ca.pem server-cert.pem cert.pem   //更改密钥权限
rm client.csr server.csr   //删除无用文件
sz {ca.pem,cert.pem,key.pem}  //下载秘钥文件
/usr/bin/dockerd --tls \  //关闭docker,再运行此命令
--tlscacert=/etc/docker/ca.pem \
--tlscert=/etc/docker/server-cert.pem \
--tlskey=/etc/docker/server-key.pem \
-H 0.0.0.0:2376
  原文参考:https://blog.csdn.net/bc_aptx4869/article/details/74984171
  第二部分在管理节点添加docker主机


  • 在hosts文件中添加docker主机名(SERVER变量)与对应ip地址
  • 将{ca.pem,cert.pem,key.pem} 上传到指定位置
  •   测试是否联通

    docker --tlsverify --tlscacert=/root/76/ca.pem --tlscert=/root/76/cert.pem --tlskey=/root/76/key.pem -H docker-node01:2376 version
    Client:
    Version:         1.13.1
    API version:     1.26
    Package version: docker-1.13.1-74.git6e3bb8e.el7.centos.x86_64
    Go version:      go1.9.4
    Git commit:      6e3bb8e/1.13.1
    Built:           Tue Aug 21 15:23:37 2018
    OS/Arch:         linux/amd64
    Server:
    Version:         1.13.1
    API version:     1.26 (minimum version 1.12)
    Package version: docker-1.13.1-74.git6e3bb8e.el7.centos.x86_64
    Go version:      go1.9.4
    Git commit:      6e3bb8e/1.13.1
    Built:           Tue Aug 21 15:23:37 2018
    OS/Arch:         linux/amd64
    Experimental:    false
  • 添加至portainer

  最后总结一下使用情况:


  • 优点:比较安全的管理docker主机
  • 缺点:

    • 使用TLS方式(启动docker)与正常启动,只能二选一,两者不能并存。也就意味着使用TLS无法在docker主机上运行docker命令;
    • 使用TLS方式,无法在portainer上启动之前(正常启动下)的容器,只能重新建立;
    • 使用TLS方式,无法使用dockerfile创建容器(至少我目前没找到方法。。)

  欢迎大家多多给予修正与补充~~




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-674894-1-1.html 上篇帖子: 使用docker pull 下载的镜像为什么只有几百兆? 下篇帖子: docker私有仓库搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表