kubebuilder入门

1. 安装kubebuilder

brew install kubebuilder

2. 需求描述

开发一个zk operator。

cr定义为ZooKeeperCluster

3. 开发过程

3.1 创建一个空的文件夹zk-operator

mkdir zk-operator

3.2 进入该文件夹

cd zk-operator

3.3 执行初始化

kubebuilder init --domain my.domain --repo my.domain

3.4 创建API

kubebuilder create api --group webapp --version v1 --kind ZooKeeperCluster

3.5 修改zk 类字段

type ZooKeeperClusterSpec struct {
	// INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
	// Important: Run "make" to regenerate code after modifying this file

	// Foo is an example field of ZooKeeperCluster. Edit zookeepercluster_types.go to remove/update
	Foo      string `json:"foo,omitempty"`
	Replicas *int32 `json:"replicas,omitempty"`
	Image    string `json:"image,omitempty"`
	Version  string `json:"version,omitempty"`
}

3.5 生成crd等文件

cd zk-operator


make manifests

3.6 在main函数中设置kubeconfig文件路径

	kubeconfig := "/Users/liyinlong/env/88.conf"
	//if os.Getenv("KUBECONFIG") != "" {
	//	kubeconfig = os.Getenv("KUBECONFIG")
	//}
	config, err := clientcmd.BuildConfigFromFlags("", kubeconfig)
	if err != nil {
		log.Fatalf("Error building kubeconfig: %s", err.Error())
	}

	mgr, err := ctrl.NewManager(config, ctrl.Options{
		Scheme: scheme,
		Metrics: metricsserver.Options{
			BindAddress:   metricsAddr,
			SecureServing: secureMetrics,
			TLSOpts:       tlsOpts,
		},
		WebhookServer:          webhookServer,
		HealthProbeBindAddress: probeAddr,
		LeaderElection:         enableLeaderElection,
		LeaderElectionID:       "1c8adf6b.my.domain",
		// LeaderElectionReleaseOnCancel defines if the leader should step down voluntarily
		// when the Manager ends. This requires the binary to immediately end when the
		// Manager is stopped, otherwise, this setting is unsafe. Setting this significantly
		// speeds up voluntary leader transitions as the new leader don't have to wait
		// LeaseDuration time first.
		//
		// In the default scaffold provided, the program ends immediately after
		// the manager stops, so would be fine to enable this option. However,
		// if you are doing or is intended to do any operation such as perform cleanups
		// after the manager stops then its usage might be unsafe.
		// LeaderElectionReleaseOnCancel: true,
	})

3.7 创建一个zk cr

apiVersion: webapp.my.domain/v1
kind: ZooKeeperCluster
metadata:
  labels:
    zk: myzk
  name: myzk1
spec:
  foo: lyl
  replicas: 2
  image: zookeeper
  version: 3.4.1

Quick Start - The Kubebuilder Book

相关推荐

  1. kubebuilder入门

    2024-07-15 23:20:02       21 阅读
  2. kubebuilder开发operator

    2024-07-15 23:20:02       46 阅读
  3. K8S学习指南(67)-脚手架工具KubeBuilder

    2024-07-15 23:20:02       42 阅读
  4. k8s二次开发-kubebuiler一键式生成deployment,svc,ingress

    2024-07-15 23:20:02       15 阅读
  5. docker从入门入土

    2024-07-15 23:20:02       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 23:20:02       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 23:20:02       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 23:20:02       62 阅读
  4. Python语言-面向对象

    2024-07-15 23:20:02       72 阅读

热门阅读

  1. 嵌入式C语言常用技巧

    2024-07-15 23:20:02       20 阅读
  2. 独立站平台选择指南:WordPress 的优势与不足

    2024-07-15 23:20:02       20 阅读
  3. 国家自然科学基金 | 面上| 青基 | 联合 | 重点

    2024-07-15 23:20:02       22 阅读
  4. Spring常见的自定义和扩展的方法

    2024-07-15 23:20:02       20 阅读
  5. Flask 静态文件处理

    2024-07-15 23:20:02       18 阅读
  6. C语言 冒泡排序

    2024-07-15 23:20:02       20 阅读
  7. 网线8芯分开4芯一组

    2024-07-15 23:20:02       22 阅读