utils

package
v0.0.0-...-3e72621 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 22, 2025 License: MulanPSL-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Template1Master      = "/bke/cluster/1master.yaml"
	Template1Master1Node = "/bke/cluster/1master1node.yaml"
	Template3Master      = "/bke/cluster/3master.yaml"
)

模板文件路径(引导节点上已存在的模板)

Variables

View Source
var BKEClusterGVR = schema.GroupVersionResource{
	Group:    "bke.bocloud.com",
	Version:  "v1beta1",
	Resource: "bkeclusters",
}

BKEClusterGVR BKECluster 资源的 GroupVersionResource

Functions

func GetConfigPath

func GetConfigPath(clusterName string) string

GetConfigPath 获取配置文件路径

func GetTemplatePathByNodeCount

func GetTemplatePathByNodeCount(nodeCount int) string

GetTemplatePathByNodeCount 根据节点数量获取模板路径

Types

type ClusterChecker

type ClusterChecker struct {
	// contains filtered or unexported fields
}

ClusterChecker 集群状态检查器

func NewClusterChecker

func NewClusterChecker(exec *executor.SSHExecutor, clusterName string) *ClusterChecker

NewClusterChecker 创建集群检查器

func (*ClusterChecker) CheckAllNodesHaveLabel

func (c *ClusterChecker) CheckAllNodesHaveLabel(labelKey string) (bool, error)

CheckAllNodesHaveLabel 检查集群中所有节点是否都有指定标签

func (*ClusterChecker) CheckCalico

func (c *ClusterChecker) CheckCalico() (bool, error)

CheckCalico 检查 Calico 网络是否正常

func (*ClusterChecker) CheckCoreDNS

func (c *ClusterChecker) CheckCoreDNS() (bool, error)

CheckCoreDNS 检查 CoreDNS 是否正常运行

func (*ClusterChecker) CheckNamespacePodsReady

func (c *ClusterChecker) CheckNamespacePodsReady(namespace string) (bool, string, error)

CheckNamespacePodsReady 检查指定命名空间下的所有 Pod 是否都处于 Running 或 Completed 状态

func (*ClusterChecker) CheckNodeHasLabel

func (c *ClusterChecker) CheckNodeHasLabel(labelKey, labelValue string) (bool, error)

CheckNodeHasLabel 检查集群中是否有节点包含指定标签

func (*ClusterChecker) CheckSystemPods

func (c *ClusterChecker) CheckSystemPods() (bool, string, error)

CheckSystemPods 检查系统组件 Pod 状态

func (*ClusterChecker) GetClusterResourceStatus

func (c *ClusterChecker) GetClusterResourceStatus() (*config.ClusterResourceStatus, error)

GetClusterResourceStatus 获取集群资源状态概览

func (*ClusterChecker) GetClusterVersion

func (c *ClusterChecker) GetClusterVersion() (string, error)

GetClusterVersion 获取集群版本

func (*ClusterChecker) GetKubeconfig

func (c *ClusterChecker) GetKubeconfig() (string, error)

GetKubeconfig 获取业务集群的 kubeconfig

func (*ClusterChecker) GetNamespaceCount

func (c *ClusterChecker) GetNamespaceCount() (int, error)

GetNamespaceCount 获取命名空间数量

func (*ClusterChecker) GetNodeCount

func (c *ClusterChecker) GetNodeCount() (int, error)

GetNodeCount 获取集群节点数量

func (*ClusterChecker) GetNodeLabels

func (c *ClusterChecker) GetNodeLabels(nodeName string) (map[string]string, error)

GetNodeLabels 获取指定节点的所有标签

func (*ClusterChecker) GetNodeStatus

func (c *ClusterChecker) GetNodeStatus(nodeName string) (string, error)

GetNodeStatus 获取指定节点的状态

func (*ClusterChecker) GetNodes

func (c *ClusterChecker) GetNodes() ([]string, error)

GetNodes 获取节点列表

func (*ClusterChecker) GetPodCount

func (c *ClusterChecker) GetPodCount(namespace string) (int, error)

GetPodCount 获取 Pod 数量

func (*ClusterChecker) GetPodNodeName

func (c *ClusterChecker) GetPodNodeName(namespace, selector string) (string, error)

GetPodNodeName 获取符合 label selector 的 Pod 所在的节点名称

func (*ClusterChecker) GetReadyNodeCount

func (c *ClusterChecker) GetReadyNodeCount() (int, error)

GetReadyNodeCount 获取 Ready 状态的节点数量

func (*ClusterChecker) GetRunningPodCount

func (c *ClusterChecker) GetRunningPodCount(namespace string) (int, error)

GetRunningPodCount 获取 Running 状态的 Pod 数量

func (*ClusterChecker) SaveKubeconfigToFile

func (c *ClusterChecker) SaveKubeconfigToFile() (string, error)

SaveKubeconfigToFile 保存 kubeconfig 到临时文件

func (*ClusterChecker) VerifyDNSResolution

func (c *ClusterChecker) VerifyDNSResolution() (bool, error)

VerifyDNSResolution 验证 DNS 解析是否正常工作

func (*ClusterChecker) WaitForAllNodesReady

func (c *ClusterChecker) WaitForAllNodesReady(expectedCount int) (bool, error)

WaitForAllNodesReady 等待所有节点 Ready

func (*ClusterChecker) WaitForSystemPodsReady

func (c *ClusterChecker) WaitForSystemPodsReady() (bool, error)

WaitForSystemPodsReady 等待系统 Pod 就绪

type ClusterConfigGenerator

type ClusterConfigGenerator struct {
	// contains filtered or unexported fields
}

ClusterConfigGenerator 集群配置文件生成器

func NewClusterConfigGenerator

func NewClusterConfigGenerator(exec *executor.SSHExecutor) *ClusterConfigGenerator

NewClusterConfigGenerator 创建配置生成器

func (*ClusterConfigGenerator) CleanupAllGeneratedConfigs

func (g *ClusterConfigGenerator) CleanupAllGeneratedConfigs() error

CleanupAllGeneratedConfigs 清理所有生成的配置文件

func (*ClusterConfigGenerator) CleanupConfig

func (g *ClusterConfigGenerator) CleanupConfig(configPath string) error

CleanupConfig 清理配置文件

func (*ClusterConfigGenerator) GenerateAndUpload

func (g *ClusterConfigGenerator) GenerateAndUpload(cfg *config.BKEClusterConfig) (string, error)

GenerateAndUpload 生成配置并上传到引导节点(兼容旧接口)

func (*ClusterConfigGenerator) GenerateFromTemplate

func (g *ClusterConfigGenerator) GenerateFromTemplate(cfg *config.BKEClusterConfig, templatePath string) (string, error)

GenerateFromTemplate 基于模板文件生成集群配置,从引导节点读取模板,只修改需要变动的字段

func (*ClusterConfigGenerator) ListGeneratedConfigs

func (g *ClusterConfigGenerator) ListGeneratedConfigs() ([]string, error)

ListGeneratedConfigs 列出已生成的配置文件

func (*ClusterConfigGenerator) ReadTemplateFromNode

func (g *ClusterConfigGenerator) ReadTemplateFromNode(templatePath string) (string, error)

ReadTemplateFromNode 从引导节点读取模板文件

func (*ClusterConfigGenerator) ValidateConfigOnNode

func (g *ClusterConfigGenerator) ValidateConfigOnNode(configPath string) error

ValidateConfigOnNode 在引导节点上验证配置文件

type ClusterManager

type ClusterManager struct {
	// contains filtered or unexported fields
}

ClusterManager BKE 集群管理器

func NewClusterManager

func NewClusterManager(exec *executor.SSHExecutor, dynamicClient dynamic.Interface) *ClusterManager

NewClusterManager 创建集群管理器

func (*ClusterManager) CleanupBKECluster

func (m *ClusterManager) CleanupBKECluster(clusterName string, force bool) error

CleanupBKECluster 强制清理 BKECluster 资源(仅在必要时使用)

func (*ClusterManager) CleanupConfig

func (m *ClusterManager) CleanupConfig(configPath string) error

CleanupConfig 清理配置文件

func (*ClusterManager) ClusterExists

func (m *ClusterManager) ClusterExists(ctx context.Context, clusterName string) bool

ClusterExists 检查集群是否存在

func (*ClusterManager) CreateCluster

func (m *ClusterManager) CreateCluster(configPath string) error

CreateCluster 创建集群

func (*ClusterManager) DeleteCluster

func (m *ClusterManager) DeleteCluster(clusterName string, force bool) error

DeleteCluster 删除集群 1. 设置 annotation bke.bocloud.com/ignore-target-cluster-delete=false(允许删除) 2. 设置 spec.reset=true 触发集群销毁 BKE 控制器会销毁集群,销毁完成后 BC 会自动被删除

func (*ClusterManager) GetClusterFullStatus

func (m *ClusterManager) GetClusterFullStatus(ctx context.Context, clusterName string) (phase, state, clusterStatus string, err error)

GetClusterFullStatus 获取集群完整状态信息(使用 kubectl 获取多个字段)

func (*ClusterManager) GetClusterList

func (m *ClusterManager) GetClusterList() ([]string, error)

GetClusterList 获取集群列表

func (*ClusterManager) GetClusterPhase

func (m *ClusterManager) GetClusterPhase(ctx context.Context, clusterName string) (string, error)

GetClusterPhase 获取集群阶段(返回 BC 的 phase 字段)

func (*ClusterManager) GetClusterStatus

func (m *ClusterManager) GetClusterStatus(ctx context.Context, clusterName string) (string, error)

GetClusterStatus 获取集群状态(返回 BC 的 clusterHealthState:Healthy/Unhealthy)

func (*ClusterManager) GetConfigGenerator

func (m *ClusterManager) GetConfigGenerator() *ClusterConfigGenerator

GetConfigGenerator 获取配置生成器

func (*ClusterManager) PrepareAndCreateCluster

func (m *ClusterManager) PrepareAndCreateCluster(cfg *config.BKEClusterConfig) (string, error)

PrepareAndCreateCluster 生成配置并创建集群

func (*ClusterManager) ScaleInNode

func (m *ClusterManager) ScaleInNode(clusterName, nodeIP string) error

ScaleInNode 缩容节点(通过编辑 BC 删除节点) 按照 BKE 规范:先 pause,设置预约删除注解,删除节点,再 unpause

func (*ClusterManager) ScaleOutNode

func (m *ClusterManager) ScaleOutNode(clusterName string, node config.NodeInfo) error

ScaleOutNode 扩容节点(通过编辑 BC 添加节点),按照 BKE 规范:先 pause,添加节点到 nodes 列表,再 unpause

func (*ClusterManager) WaitForClusterDeleted

func (m *ClusterManager) WaitForClusterDeleted(ctx context.Context, clusterName string, timeout time.Duration) error

WaitForClusterDeleted 等待集群完全删除(BC 资源不存在)

func (*ClusterManager) WaitForClusterReady

func (m *ClusterManager) WaitForClusterReady(ctx context.Context, clusterName string, timeout time.Duration) error

WaitForClusterReady 等待集群就绪(state=Healthy)

Source Files

  • cluster_checker.go
  • cluster_manager.go
  • yaml_helper.go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL