如果你打算使用此 repo 作为参考,请打星。谢谢!
🚀 CKA,CKAD,CKS或KCNA考试的候选人今天可以使用代码DCUBEOFFER节省60美元 https://kube.promo/devops。这是Linux基金会的限时优惠。
下图显示了高级 kubernetes 体系结构以及外部服务如何连接到群集。
请参阅以下文档以了解 Kubernetes 架构。
在云中启动大型集群的成本可能很高。因此,利用可用的云积分来练习部署集群,就像在处理真实项目一样。所有云平台都提供托管的 Kubernetes 服务。
作为 DevOps 工程师,全面了解每个组件和集群配置对于在生产环境中工作至关重要。尽管部署 Kubernetes 集群的方法多种多样,但建议从头开始学习如何设置多节点集群。这使你能够获得有关高可用性、扩展和网络等概念的知识,并模拟实际项目。
此外,掌握多节点集群的配置有助于面试和建立对自己能力的信心。以下是建立 Kubernetes 集群的推荐方法。
以下是一些重要的群集管理任务
作为一名 DevOps 工程师,熟悉 Kubeconfig 文件非常重要。它对于为 CI/CD 系统设置群集身份验证、为开发人员提供群集访问权限等任务至关重要。
Kubeconfig 文件是一个 YAML 文件,用于存储用于连接到 Kubernetes 集群的信息和凭据。命令行工具(如 kubectl 和其他客户端库)使用它来向群集进行身份验证并与其资源进行交互。
Kubeconfig 文件可用于存储多个集群和用户的信息,允许用户轻松地在不同的集群和上下文之间切换。它是管理对 Kubernetes 集群的访问和交互的重要工具。
请参考以下文档详细了解 Kubeconfig 文件。
在 Kubernetes 中,对象是集群中的持久实体,表示系统的所需状态。它由 Kubernetes API 服务器创建和管理,并存储在 etcd 键值存储中。Kubernetes 对象的示例包括 pod、服务和部署。
下面是一个 Pod 对象的示例
apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80
资源是由 Kubernetes API 公开的 Kubernetes 对象的表示形式。这是客户端与群集中的对象交互和操作对象的一种方式。
资源是指用于访问对象的特定 API URL。资源通常通过 Kubernetes API 使用 HTTP 动词(如 GET、POST 和 DELETE)进行访问。例如,该资源可用于检索 v1 Pod 对象列表。此外,可以从资源中获取单个 v1 Pod 对象。
/api/v1/pods
/api/v1/namespaces/namespace-name/pods/pod-name
<--进行中-->
<--进行中-->
<--进行中-->
<--进行中-->
<--进行中-->
<--进行中-->
<--进行中-->
<--进行中-->
如果你没有现实世界的 Kubernetes 经验,最好阅读其他使用 kubernetes 的公司的案例研究。
Helm 和 Kustomize 都是用于管理 Kubernetes 清单的工具。它们在许多方面相似,但有一些关键差异。
Helm 是 Kubernetes 的包管理器,允许用户在 Kubernetes 集群上轻松安装、管理和升级应用程序。它使用一种称为“图表”的概念,这些图表是预先配置的 Kubernetes 资源集,可以轻松部署、升级和回滚。
另一方面,Kustomize是一个允许用户自定义和配置现有Kubernetes清单的工具。它使用称为“补丁”的概念,可以应用于现有清单,以针对不同的环境和用例自定义它们。与 Helm 不同,Kustomize 不包括对版本控制和回滚的内置支持,并且没有“包”或“存储库”的概念。
GitOps 是一种持续部署方法,它使用 Git 作为声明性基础结构和应用程序代码的单一事实来源。
一些流行的基于 GitOps 的工具,用于将应用程序部署到 Kubernetes 集群: