大家好,我叫阳明(杨川胡),之前是小米公司的一名高级开发工程师,现在回到家乡成都,自由职业者一枚,是一个有着产品思维的工程师,现在也在努力将自己的产品思维体系化,对互联网产品有自己独到的见解,全栈工程师,现阶段对kubernetesistio非常着迷,创建了「k8s技术圈」社区。

我可以提供企业kubernetes化方面的知识培训和咨询工作,感兴趣的可以通过微信iEverything和我联系。

Kubernetes 服务质量 Qos 解析

Pod 资源 requests 和 limits 如何配置?

QoS是 Quality of Service 的缩写,即服务质量。为了实现资源被有效调度和分配的同时提高资源利用率,kubernetes针对不同服务质量的预期,通过 QoS(Quality of Service)来对 pod 进行服务质量管理。对于一个 pod 来说,服务质量体现在两个具体的指标:CPU 和内存。当节点上内存资源紧张时,kubernetes 会根据预先设置的不同 QoS 类别进行相应处理。

[Read More]

Helm 的基本使用

上节课我们成功安装了Helm的客户端以及服务端Tiller Server,我们也自己尝试创建了我们的第一个 Helm Chart 包,这节课就来和大家一起学习下 Helm 中的一些常用的操作方法。

[Read More]

如何学习Kubernetes?

如何可以快速学习Kubernetes

不管你是否意识到,在过去的几年时间里,以Docker、Kubernetes为代表的容器技术已经悄然发展成为一项通用技术。放眼国外,Google、Microsoft、IBM等互联网巨头们,仍在容器开源基础设施的技术市场上厮杀。回看国内,包括BAT、滴滴、京东、头条在内的大厂也都争相把容器和Kubernetes项目作为其技术重心,试图“放长线钓大鱼”。

[Read More]

ipvs 基本介绍

如何在 kubernetes 中启用 ipvs

ipvs (IP Virtual Server) 实现了传输层负载均衡,也就是我们常说的4层LAN交换,作为 Linux 内核的一部分。ipvs运行在主机上,在真实服务器集群前充当负载均衡器。ipvs可以将基于TCPUDP的服务请求转发到真实服务器上,并使真实服务器的服务在单个 IP 地址上显示为虚拟服务。

[Read More]

外部服务发现之 ingress(一)

traefik 的安装使用

上节课我们学习了在Kubernetes集群内部使用kube-dns实现服务发现的功能,那么我们部署在Kubernetes集群中的应用如何暴露给外部的用户使用呢?我们知道前面我们使用 NodePort 和 LoadBlancer 类型的 Service 可以实现把应用暴露给外部用户使用,除此之外,Kubernetes 还为我们提供了一个非常重要的资源对象可以用来暴露服务给外部用户,那就是 ingress。对于小规模的应用我们使用NodePort或许能够满足我们的需求,但是当你的应用越来越多的时候,你就会发现对于 NodePort 的管理就非常麻烦了,这个时候使用 ingress 就非常方便了,可以避免管理大量的 Port。

[Read More]

集群内部服务发现之 DNS

前面我们给大家讲解了Service的用法,我们可以通过 Service 生成的ClusterIP(VIP)来访问 Pod 提供的服务,但是在使用的时候还有一个问题:我们怎么知道某个应用的 VIP 呢?比如我们有两个应用,一个是 api 应用,一个是 db 应用,两个应用都是通过Deployment进行管理的,并且都通过 Service 暴露出了端口提供服务。api 需要连接到 db 这个应用,我们只知道 db 应用的名称和 db 对应的 Service 的名称,但是并不知道它的 VIP 地址,我们前面的 Service 课程中是不是学习到我们通过ClusterIP就可以访问到后面的Pod服务,如果我们知道了 VIP 的地址是不是就行了?

[Read More]

基于 Jenkins 的 CI/CD(三)

Jenkins Blue Ocean 的使用

上节课我们讲解了使用Jenkins Pipeline来自动化部署一个Kubernetes应用的方法,在实际的项目中,往往一个代码仓库都会有很多分支的,比如开发、测试、线上这些分支都是分开的,一般情况下开发或者测试的分支我们希望提交代码后就直接进行CI/CD 操作,而线上的话最好增加一个人工干预的步骤,这就需要Jenkins对代码仓库有多分支的支持,当然这个特性是被Jenkins支持的。

[Read More]