Documentation
¶
Index ¶
- Constants
- Variables
- func GetConfigPath(clusterName string) string
- func GetTemplatePathByNodeCount(nodeCount int) string
- type ClusterChecker
- func (c *ClusterChecker) CheckAllNodesHaveLabel(labelKey string) (bool, error)
- func (c *ClusterChecker) CheckCalico() (bool, error)
- func (c *ClusterChecker) CheckCoreDNS() (bool, error)
- func (c *ClusterChecker) CheckNamespacePodsReady(namespace string) (bool, string, error)
- func (c *ClusterChecker) CheckNodeHasLabel(labelKey, labelValue string) (bool, error)
- func (c *ClusterChecker) CheckSystemPods() (bool, string, error)
- func (c *ClusterChecker) GetClusterResourceStatus() (*config.ClusterResourceStatus, error)
- func (c *ClusterChecker) GetClusterVersion() (string, error)
- func (c *ClusterChecker) GetKubeconfig() (string, error)
- func (c *ClusterChecker) GetNamespaceCount() (int, error)
- func (c *ClusterChecker) GetNodeCount() (int, error)
- func (c *ClusterChecker) GetNodeLabels(nodeName string) (map[string]string, error)
- func (c *ClusterChecker) GetNodeStatus(nodeName string) (string, error)
- func (c *ClusterChecker) GetNodes() ([]string, error)
- func (c *ClusterChecker) GetPodCount(namespace string) (int, error)
- func (c *ClusterChecker) GetPodNodeName(namespace, selector string) (string, error)
- func (c *ClusterChecker) GetReadyNodeCount() (int, error)
- func (c *ClusterChecker) GetRunningPodCount(namespace string) (int, error)
- func (c *ClusterChecker) SaveKubeconfigToFile() (string, error)
- func (c *ClusterChecker) VerifyDNSResolution() (bool, error)
- func (c *ClusterChecker) WaitForAllNodesReady(expectedCount int) (bool, error)
- func (c *ClusterChecker) WaitForSystemPodsReady() (bool, error)
- type ClusterConfigGenerator
- func (g *ClusterConfigGenerator) CleanupAllGeneratedConfigs() error
- func (g *ClusterConfigGenerator) CleanupConfig(configPath string) error
- func (g *ClusterConfigGenerator) GenerateAndUpload(cfg *config.BKEClusterConfig) (string, error)
- func (g *ClusterConfigGenerator) GenerateFromTemplate(cfg *config.BKEClusterConfig, templatePath string) (string, error)
- func (g *ClusterConfigGenerator) ListGeneratedConfigs() ([]string, error)
- func (g *ClusterConfigGenerator) ReadTemplateFromNode(templatePath string) (string, error)
- func (g *ClusterConfigGenerator) ValidateConfigOnNode(configPath string) error
- type ClusterManager
- func (m *ClusterManager) CleanupBKECluster(clusterName string, force bool) error
- func (m *ClusterManager) CleanupConfig(configPath string) error
- func (m *ClusterManager) ClusterExists(ctx context.Context, clusterName string) bool
- func (m *ClusterManager) CreateCluster(configPath string) error
- func (m *ClusterManager) DeleteCluster(clusterName string, force bool) error
- func (m *ClusterManager) GetClusterFullStatus(ctx context.Context, clusterName string) (phase, state, clusterStatus string, err error)
- func (m *ClusterManager) GetClusterList() ([]string, error)
- func (m *ClusterManager) GetClusterPhase(ctx context.Context, clusterName string) (string, error)
- func (m *ClusterManager) GetClusterStatus(ctx context.Context, clusterName string) (string, error)
- func (m *ClusterManager) GetConfigGenerator() *ClusterConfigGenerator
- func (m *ClusterManager) PrepareAndCreateCluster(cfg *config.BKEClusterConfig) (string, error)
- func (m *ClusterManager) ScaleInNode(clusterName, nodeIP string) error
- func (m *ClusterManager) ScaleOutNode(clusterName string, node config.NodeInfo) error
- func (m *ClusterManager) WaitForClusterDeleted(ctx context.Context, clusterName string, timeout time.Duration) error
- func (m *ClusterManager) WaitForClusterReady(ctx context.Context, clusterName string, timeout time.Duration) error
Constants ¶
const ( Template1Master = "/bke/cluster/1master.yaml" Template1Master1Node = "/bke/cluster/1master1node.yaml" Template3Master = "/bke/cluster/3master.yaml" )
模板文件路径(引导节点上已存在的模板)
Variables ¶
var BKEClusterGVR = schema.GroupVersionResource{
Group: "bke.bocloud.com",
Version: "v1beta1",
Resource: "bkeclusters",
}
BKEClusterGVR BKECluster 资源的 GroupVersionResource
Functions ¶
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 ¶
GetClusterPhase 获取集群阶段(返回 BC 的 phase 字段)
func (*ClusterManager) GetClusterStatus ¶
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
Source Files
¶
- cluster_checker.go
- cluster_manager.go
- yaml_helper.go