From 0a2309eb9eb8b3a7fc526eb48682d2adc15cf282 Mon Sep 17 00:00:00 2001 From: ptwz99fg0muu Date: Tue, 15 Aug 2023 17:48:00 +0800 Subject: [PATCH] bak --- kubenets/04.02Service.md | 5 +++ kubenets/operator/01 简介.md | 81 +++++++++++++++++++++++++++++++++++- 2 files changed, 85 insertions(+), 1 deletion(-) diff --git a/kubenets/04.02Service.md b/kubenets/04.02Service.md index 6c0a2cb9..7226c161 100644 --- a/kubenets/04.02Service.md +++ b/kubenets/04.02Service.md @@ -16,6 +16,11 @@ Service为Pods提供了一个稳定的IP地址和DNS名称,以便其他应用 * LoadBalancer ### HeadLess +Headless Services是一种特殊的service,其spec:clusterIP表示为None,这样在实际运行时就不会被分配ClusterIP。也被称为无头服务。 + +* headless不分配clusterIP。headless service可以通过解析service的DNS,返回所有Pod的地址和DNS(statefulSet部署的Pod才有DNS) +* 普通的service,只能通过解析service的DNS返回service的ClusterIP + ### ClusterIp diff --git a/kubenets/operator/01 简介.md b/kubenets/operator/01 简介.md index a27f6e05..f9174c5b 100644 --- a/kubenets/operator/01 简介.md +++ b/kubenets/operator/01 简介.md @@ -8,10 +8,89 @@ Operator 直接使用 Kubernetes API进行开发,也就是说他们可以根 -### Operator Framework +### 开发框架 Operator Framework 同样也是 CoreOS 开源的一个用于快速开发 Operator 的工具包,该框架包含两个主要的部分: * Operator SDK: 无需了解复杂的 Kubernetes API 特性,即可让你根据你自己的专业知识构建一个 Operator 应用。 * Operator Lifecycle Manager OLM: 帮助你安装、更新和管理跨集群的运行中的所有 Operator(以及他们的相关服务) + + +### 基本流程 + + +1. 使用 SDK 创建一个新的 Operator 项目 +2. 通过添加自定义资源(CRD)定义新的资源 API +3. 指定使用 SDK API 来 watch 的资源 +4. 定义 Operator 的协调(reconcile)逻辑 +5. 使用 Operator SDK 构建并生成 Operator 部署清单文件 + +## 使用实例 + +### 搭建go开发环境 + +1. 下载 + +``` +brew install go +``` +2. 配置环境变量 + +``` +GOPATH= +GOROOT= +GOPROXY= +``` + +3. 安装operator-sdk工具 + +``` +brew install operator-sdk +``` + +### 创建项目 + + +``` +$ operator-sdk new opdemo +...... +# 该过程需要科学上网,需要花费很长时间,请耐心等待 +...... +$ cd opdemo && tree -L 2 +. +├── Gopkg.lock +├── Gopkg.toml +├── build +│ ├── Dockerfile +│ ├── _output +│ └── bin +├── cmd +│ └── manager +├── deploy +│ ├── crds +│ ├── operator.yaml +│ ├── role.yaml +│ ├── role_binding.yaml +│ └── service_account.yaml +├── pkg +│ ├── apis +│ └── controller +├── vendor +│ ├── cloud.google.com +│ ├── contrib.go.opencensus.io +│ ├── github.com +│ ├── go.opencensus.io +│ ├── go.uber.org +│ ├── golang.org +│ ├── google.golang.org +│ ├── gopkg.in +│ ├── k8s.io +│ └── sigs.k8s.io +└── version + └── version.go + +23 directories, 8 files +``` + +