mirror of
https://github.com/Estom/notes.git
synced 2026-02-03 02:23:31 +08:00
bak
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user