白化Kubernetes网络
引自:http://www.10tiao.com/html/217/201708/2649694873/1.html
容器的网络是在CaaS集群中无法避免的话题,作为当下最主流的一种容器集群解决方案,Kubernetes对网络进行了合理的抽象,并采用了开放的CNI模型。面对各种容器网络实现,他们有什么不同,应该如何选择?本文将带大家回顾Kubernetes各种主流网络方案的发展历程,并透过现象清本质,用形象的例子展示Weave、Flannel、Calico和Romana等网络解决方案背后的原理。
这次讲一讲容器集群中的网络。其实不同的容器集群解决方案,在网络方面的核心原理都是相似的,只不过这次我们将以Kubernetes为线索,来窥斑见豹的一睹容器网络的发展过程。
我是来自ThoughtWorks的林帆,我们从Docker的0.x版本开始就在对容器的应用场景进行探索,积累了一线的容器运用经验。这次分享会用简洁易懂的方式告诉大家我们对容器网络方面的一些知识归纳。
初入容器集群的人往往会发现,和单节点的容器运用相比,容器的网络和存储是两个让人望而却步的领域。在这些领域里,存在大量的 ...
研发项目管理实践
项目的特征
唯一性、2. 存在风险、3. 临时的、4. 跨部门的团队、5. 渐渐明晰
项目的三约束(QBT)Q:质量、B:资金、T:时间
按时、在预算之内、满足性能指标、满足或超出客户的预期完成就是一个成功的项目。
优秀的项目经理在完成一个项目的过程中,让Boss、客户、团队成员都满足。
做项目时要时刻考虑到项目的目的。
项目的来源
合同驱动、2. 市场驱动、3. 变更Change
项目周期
与不同干系人的沟通干系人指的是对项目成败有利益,对项目有影响的人。
识别干系人。核心团队成员一起来识别。
分析干系人。
对不同的干系人采取不同的策略。
影响力来源
信誉、2. 互惠、3. 说服
项目进展
核心团队成员融入到项目里面,能够将项目说清楚
做计划。计划的过程很重要。做计划的过程是把核心团队消化项目的过程,也是责任转移的过程。项目经理要将项目分成模块,细节让负责部分的核心团队成员来做。
团队建设模型(Tuckman模型)
团队建设分为四个阶段:形成阶段、磨合阶段、规范阶段、贡献阶段
四个阶段中间不能跳过
保证核心成员的完整性
项目经理,二件事:管项目,管 ...
网络相关工具简单汇总
lscpi查看Mac地址和网卡带宽12[root@localhost] $ yum install pciutils -y[root@localhost] $ lspci -vvv
里面的mac地址格式:46-8d-80-6d-06-07
ip a查看Mac地址与IP12[root@localhost] $ yum install iproute[root@localhost] $ ip a
里面的mac地址格式:46:8d:80:6d:06:07
iperf 对集群进行网络流量测试启动服务端
12[root@localhost] $ yum install iperf3 -y[root@localhost] $ iperf3 -s
客户端进行测试
12[root@localhost] $ yum install iperf3 -y[root@localhost] $ iperf3 -c 10.2.2.2 -P 5
以上默认为作TCP测试,如果要UDP测试,服务端启动与客户端测试都需要加上-u
1234## 服务端iperf3 -s -u## 客户端iperf3 -c 10.2.2.2 ...
给非技术人员说清楚容器是什么
小明要造一个房子,开始自己买木头、砖头自己造。
出现了一个开发商,他有一个机器,可以在几分钟内造出一个毛坯房,小明只需要按照自己的风格做装修。
巫婆出现,给了小明一个魔法袋,它可以把房子的模型装入袋中,想造房子念个咒语就行。
小明造了很多模板,可以轻松地就能造出很多房子。
来了个商人,告诉小明可以把魔法袋租出去,别人也可以放入模板,也能够造房子,坐收租金。
参考文章https://zhuanlan.zhihu.com/p/53260098
自定义Service添加到Openshift中的Prometheus
prometheus.yml中定义了keep, drop, update等状态1234567891011121314151617181920212223242526272829303132333435363738394041424344- job_name: 'kubernetes-service-endpoints' tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt # TODO: this should be per target insecure_skip_verify: true kubernetes_sd_configs: - role: endpoints relabel_configs: # only scrape infrastructure components - source_labels: [__meta_kubernetes_namespace] action: keep regex: ...
通过curl访问OpenShift上部署的Prometheus获取监控数据
Prometheus作为最常用的集群的监控组件,它收集了集群最全的状态信息。那么当我们需要将它与现有的监控告警平台打通,或者根据它开发一个自己的监控展示平台时,就不得不需要获得Prometheus的监控数据了。这时就不得不访问Prometheus的API接口。根据场景的不同有两种方式能够获取到Prometheus的数据
集群外部,通过访问Prometheus UI的链接来获取指标数据
集群内部,进入Prometheus容器中,获取指标数据
1. 集群外部,curl访问Prometheus UI地址由于OpenShift上部署的Prometheus应用对接了OpenShift的用户认证oauth-proxy,所以必须先获取用户的Token后再通过curl访问prometheus服务获取数据,具体操作如下。
123456789101112# #登录[root@master ~]# oc login -u adminAuthentication required for https://master.example.com:8443 (openshift)Username: admin ...
镜像仓库的镜像清理
1. 必备条件镜像仓库打开可删除功能
2. 清理镜像12345# curl -k -I -H "Accept: application/vnd.docker.distribution.manifest.v2+json" -I http://localhost:5000/v2/openshift/ocp-router/manifests/v3.11.129获取镜像层的sha256值# curl -X DELETE http://localhost:5000/v2/openshift/ocp-router/manifests/sha256:39ad17c3e10f902d8b098ee5128a87d4293b6d07cbc2d1e52ed9ddf0076e3cf9# #登录到镜像仓库# registry garbage-collect /etc/docker-distribution/registry/config.yml
3. 参考文档私有docker registry的使用–push,pull,search,delete
镜像命名规范与Dockerfile编写规范
镜像命名规范镜像地址:镜像仓库/项目名/镜像名:标签名
项目名,公共项目使用名称:base,并设置为公开;其它项目使用英文小写项目名,设置为私有。
镜像名中应该包含使用的组件名称及版本信息,使用-连接。
基础镜像命名规则基础镜像命名应按照操作系统大版本:版本号-构建版本的格式命名,例如:base/rehl7:7.6-1
公共镜像全名规则公共镜像命名应按照服务名-中间件-上级中间件:服务版本号-中间件版本号-上级中间件版本号-构建版本的格式命名,中间件名称可以包含大版本号,例如:base/tomcat8-openjdk8:8.5.23-jre8u212-1
应用命名规则使用格式:系统-模块:系统版本-模块版本-构建版本,例如:sys/sys-rs:1.1-1.1-1
同一应用镜像在以上标签的规则下,还可以根据发布流程设置多个标签,以满足部署时版本依赖的管理要求。例如sys/sys-rs:v1代表v1.x的最新版本。
镜像制作规范
关键字使用大写
FROM镜像,指定明确的Tag,不要使用latest
发布向后兼容的镜像可以使用同一个Tag号,否则使用新的Tag号 ...
《大数据时代—生活、工作与思维的大变革》读书笔记
信息时代的到来,大数据时代为我们探索事物提供了一个非常不同的思路,并且很明显它将会帮助我们发现更多无法想象的问题及解决方法。这不仅仅是将数据量化,更是思维的一次升级。
引言随着信息时代的发展,数据无处不在,并高速爆炸,同时大数据时代正改变我们的思维方式。大数据告诉我们“是什么”而不是“为什么”。人类一直以来探索这个世界都是建立在因果的基础上,看到事务的发生会去思考内在的原因,并从中发现规律,总结经验。也是在这种不断探索,穷追不舍的坚持下,人类发现了现在的很多理论,可以说人类的现文明是建立在不断追问“为什么”的基础上建立起来的。但是大数据时代改变了这一切。我们不必关心A事物与B事物的关系,但是无法数据显示A发生了某变化,B也会跟着发生变化,那我们就可以得到A变B变的结果,而无需去探索为什么,当我们需要B作某些改变时,我们只要改变A就好了。当发现某中水果对治疗癌症有效果的时候,我们又怎么会为了不清楚之间的关联,而拒绝食用该水果呢?我们不再关心为什么,我们关心的是它是什么。相反思考,恰是大数据发现是“是什么”,而让我们有了更准确的思考方向,去探究“为什么”。
第一部分:大数据时代的思维 ...
Kubefwd——Openshift-K8S-本地开发的福音
小志:“kubefwd 本地开发的福音啊,本地环境直接连接 svc。”当小志推荐这个工具的时候,我正在 Kubecon 大会的现场,听着 Kubernetes 近一年的各种成就和各种新特性。我无法看到微信另一头小志的表情,也许平静,也许跟我现在一样激动。kubefwd,这是第一次听到这个工具,“本地环境直接连接 svc”,openshift 的 port-fowrward 命令就能做到,没什么也不起的吧。我回复道:“openshift 的 port-forward,再加个自动更新本地 hosts 文件”。小志发来了 kubefwd 请求流向图。
服务 api 与服务 auth 提供的都是 80 端口,但是它们能够同时被本地访问,这是 port-forward 无法做到的!我意识到这个工具很不简单,刚才的想法太草率了。我马上回复:“我刚才理解得不对,它可以做到一个 port 对应多个 service!”此刻的心情其实已经非常激动了,因为意识到 kubefwd 这个工具也许解决了困扰我多天的问题。
近一周一直在脑中徘徊的是徐磊老师介绍微软的 TFS 时的演示:开发人员本地修改代码,可以 ...