This commit is contained in:
ptwz99fg0muu
2023-08-15 17:48:00 +08:00
parent 9ee65f13d9
commit 0a2309eb9e
2 changed files with 85 additions and 1 deletions

View File

@@ -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

View File

@@ -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
```