
docker
文章平均质量分 60
somyjun
十多年嵌入式系统,网络通信,虚拟化,云计算相关产品的软件设计开发
展开
-
cicd平台,升级gitlab带来的一些配置、接口变化
gitlab软件版本需要从GitLab Community Edition8.9.11升级到GitLab Community Edition12.10.11,记录下本次升级所做的改动以及遇到的坑。 涉及到的各个服务见下图:1. 版本跨度太大,没有采用软件更新升级的方式;同样也没有采用备份/还原的方式。2. 安装部署了一新的gitlab服务器,从旧gitlab服务器迁移项目到新gitlab服务器。3. 更新"通过API方式访问gitlab"的认证方式和接口版本...原创 2020-07-16 15:00:30 · 472 阅读 · 0 评论 -
Docker容器及kubernetes网络
本文讲述下docker容器以及k8s部署环境下,与网络相关的知识。读者需要对tcp/ip网络,交换/路由,网络虚拟化以及容器技术需要有一定的基础。1. 浅谈容器网络 容器container,就是一个被隔离的环境(Namespace)下,同时限制了访问权限(Cgroup)的进程运行时,它配置了属于自己的网卡,网络栈,就像物理机一样,可以访问外部网络,同时外...原创 2019-03-22 11:20:59 · 1107 阅读 · 4 评论 -
Flannel网络方案
这里讲一下Flannel网络方案,梳理下其工作方式,各个环节配置,以及转发包流程。Fannel项目是CoreOS公司主推的容器网络方案。目前实现的技术有三种,分别是:UDP Vxlan Host-GW1. UDP方式 Udp方式是Flannel项目最早支持的,也是性能最差的一种。目前已经被弃用,不过,这种方式最直接、也是最容易理解的跨主机实现。...原创 2019-03-22 11:48:37 · 1823 阅读 · 0 评论 -
Calico网络方案
Fannel纯三层路由的方式实现不同宿主机间的容器通信,这种方式工作的前提是宿主机之间是二层连通的。需要注意的是,宿主机之间二层不连通的情况也是广泛存在的,这就不得不提到calico网络方案了。Calico网络方案同时解决了宿主机二层连通和不连通的的场景下,容器之间通过纯三层路由通信的问题。 Fannel通过etcd和宿主机上的fanneld维护路由信息,calico使用了BG...原创 2019-03-22 14:39:29 · 3652 阅读 · 0 评论 -
容器Namespace - 1
Namespace是怎么回事? Linux namespace,可以理解为将全局的操作系统资源,逻辑上划分成功能独立的单元。如进程号PID,这些个单元有各自独立的PID空间,还比如网络栈,这些个独立的单元有各自独立的路由表,网络接口。linux实现了mount、UTS、IPC、network、pid、user这六种namespace。下面先用unshare来测试实验梳理一...原创 2019-04-26 14:19:11 · 2063 阅读 · 1 评论 -
容器Namespace - 2
容器通过namespace建立属于自己的一个相对隔离的环境,从上一篇《容器Namespace - 1》我们知道centos7默认没有启用user namespace。 上图显示容器的user namespace与宿主机是同一个ID:4026531837,接下来简单分析下docker创建namespace的代码。vendor/github.com/...原创 2019-04-26 16:47:21 · 378 阅读 · 0 评论 -
Docker容器的capability
linux capability是啥?资料来源:http://man7.org/linux/man-pages/man7/capabilities.7.html“For the purpose of performing permission checks, traditional UNIXimplementations distinguish two catego...原创 2019-04-26 17:33:12 · 3653 阅读 · 0 评论 -
进程 vs 容器 vs 虚拟机
进程: 互相隔离的虚拟地址空间 运行中的程序,由操作系统调度执行 共享操作系统管理的资源(内存、网络栈、I/O) 版本管理、可移植性差容器: 命名空间实现资源隔离(UTS、IPC、PID、Network、Mount、User) 运行中的镜像,以服务的形式呈现,由操作系...原创 2019-04-19 17:25:25 · 325 阅读 · 0 评论 -
k8s环境下etcd分布式数据库集群配置,数据存储与发现
1. 什么是etcd? etcd是一个分布式一致性键值存储系统,用于共享配置和服务发现, etcd基于raft协议实现数据同步(K-V数据),集群由多个节点组成。 raft协议理解起来相比paxos并没有简单到哪里,因为都很难理解,所以我简单描述一下: 每次写入都是在一个事务(tx)中完成的。 一个事务(tx)可以包含若干put(写入k-v键值对)操作...原创 2019-06-25 16:13:04 · 1250 阅读 · 0 评论