kubernetes
Kubernetes 的出现很大程度上抹平了运维工作的鸿沟,大大降低了老旧互联网企业和新兴小企业的运维成本,同时也为了转投“云”怀抱提供了可能。
Kubernetes builds upon 15 years of experience of running production workloads at Google, combined with best-of-breed ideas and practices from the community.
Kubernetes 带着 Google 15年的生产环境运维管理经验,重新定义的容器编排的标准。原来运维也可以如此高效、优雅、让人着迷。
容器抽象了服务器和程序运行环境
Kubernetes 抽象了服务器集群和程序集群
Kubernetes 学习路线
Kubernetes 是一个产品,所以绝大多数情况只需要“会用”就可以了。不需要去“懂”。
部署
要想用 Kubernetes,你需要先有一个 Kubernetes 集群。
如果是个人学习,最简单就是云服务商直接创建一个集群出来。腾讯云上只包含 2 个 2Core 4G 节点的托管集群,一个小时只需要大概 0.7 元(记得带宽选按量付费)。阿里云也差不多。即用即创建,用完即删。我这里有 腾讯云 和 阿里云 的返利链接,从这个链接进去买服务器大概能返总花费的 20% 可以联系我,退给你。
如果是企业要用,就要花时间去研究下如何部署了。但是不需要太担心,网上部署文档很多,而且社区一直在简化部署。
如果是创业公司,或者小公司,建议直接使用云服务。更稳定,而且性价比最高。
说明:自己部署的 Kubernetes 版本,和云服务提供的版本,是没有差异的。不用担心 Kubernetes 功能被阉割,一般只会增强。
基本使用
不论你通过何种方式,现在已经有了一个正在运行的集群。
UI 界面
如果你是用的云服务商,你还有一个UI界面给你操作,简单了解 Kubernetes 的各个组件。
如果是自己部署的,你可以安装官方提供的 Dashboard 组件,也可以给你提供一个UI操作界面。护额安装,请参考下面的 kubeclt 命令。
Kubectl 必须要
kubectl 是一个命令行工具。类似于 linux 系统的 ls 程序,windows 系统上的 cmd.exe 程序。只不过是专门用来和 Kubernetes 打交道的。
kubectl 安装在 Linux 上比较简单。windows 上稍微麻烦一点,本质上只需要想办法下载一个 kubectl.exe 文件,并在 PATH 里加上文件所在路径就可以了。
kubectl 的配置。Linux 和 windows 都一样的。在家目录创建一个 .kube 的文件夹,里面放一个无后缀的 config 文件,文件的内容,一般的云厂商都提供下载。
第一个命令:
kubectl get node
可以查看集群的 worker-node 个数。如果能成功返回结果,说明上面的步骤都 OK 了。开始真正开始了解和使用 Kubernetes 了。如果失败,一般都是网络问题,或者云厂商需要先添加白名单等等,自行发挥去解决吧。
kubectl 基础知识
kubectl get xxxx 快速了解 Kubernetes 的过程。
kubectl describe xxxx 帮你了解 yaml 的格式、语法等。
helm 基础知识
因为生产环境不可能只部署 hello-world 这样的简单程序。所以正常的应用,都包含很多个 yaml 文件,如何有效的管理和组织,并方便复用和分发,就属于 Helm 的范围了。
helm 本身只是一个模板引擎,另外再配上基于版本号的打包功能,再加上提供的包仓库。就最简单的实现了上面提到的几个目标。helm install xxxx
helm install xxxx 和 helm template xxxx 先生成 yaml 文件 + 使用 kubectl apply -f xxxx 部署,效果是一样的。只是 Helm install 提供的额外的生命周期管理。