使用terraform利用已有资源创建GKE集群

近日创建GKE集群,需要使用现有的VPC进行创建,所以需要掌握两个步骤,导入资源,创建集群 terraform 导入命令 GCP中的资源地址和 ID。资源地址是指向配置中的资源实例的标识符。ID 是标识 Google Cloud 中要导入的资源的标识符 资源地址通常为 terraform在定义这类资源时配置的(对应提供商支持),以 GCP 为例 Cloud Storage 存储桶, google_storage_bucket.sample,sample 为 id,定义如下 yaml 1 2 3 4 5 6 resource "google_storage_bucket" "sample" { name = "my-bucket" project = "sample-project" location = "US" force_destroy = true } 示例 - 导入现有GKE集群 语法 bash 1 terraform import <resource_name>.<name> <project>/<locations>/<real_resource_name> 实例 bash 1 terraform import google_container_cluster.gke project20231124/asia-east2/gke-prd-cluster-02 输出结果如下 bash 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $ terraform import google_container_cluster....

 ·  · 

使用rclone工具完成bucket数据同步

rclone工具的特点 支持增量,配置简单,支持参数调节吞吐量(不同吞吐量使用内存不同,传输差异也不同) copy是复制 source 到 dst sync是根据 src 的内容对比 dst,删除dst不存在的内容 下面是写了一同步的脚本 bash 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 #!...

 ·  · 

Goswagger - Skipping '', recursion detected

问题:当使用的结构体为嵌套格式,会提示 recursion detected 或 cannot find type definition go 1 2 3 4 5 6 7 8 9 10 11 type Instance struct { metav1.TypeMeta Instances []InstanceItem `json:"instances" yaml:"instances" form:"instances" binding:"required"` ServiceSelector map[string]string `json:"serivce_selector" yaml:"serivce_selector" form:"serivce_selector"` } type InstanceItem struct { Name string `json:"name" yaml:"name" form:"name" binding:"required"` PromEndpoint string `json:"prom_endpoint" yaml:"prom_endpoint" form:"prom_endpoint" binding:"required"` Labels map[string]string `json:"labels" yaml:"labels" form:"labels"` } go swagger 注释为 text 1 2 3 4 5 6 7 8 9 10 // deleteInstance godoc // @Summary Remove prometheus instance....

 ·  · 

Kubernetes公有云集群中部署Nacos集群

nacos-k8s nacos-k8s 是Nacos官方维护的项目,可以使用 helm 直接在 k8s 集群中部署 nacos 集群(包含公有云) 部署步骤 找到数据库表结构 在你要安装的版本号的配置中找到 SQL 文件进行创建库操作,例如 github.com/alibaba/nacos/tree/2.4.1/distribution/conf 自定义 helm 资源和配置 在公有云上部署,还需要修改下对应资源的类型,例如建立 LB service 增加了自动获取 gcp 预留的 IP,和service改为LB类型 yaml 1 2 3 4 5 6 7 8 9 10 11 12 service: #type: ClusterIP #type: NodePort type: LoadBalancer port: 8848 nodePort: 30000 # 这样可以使用静态IP loadBalancerIP: 192.168.0.1 annotations: # 这个annotation 原自官方创建 load-balancer的方式 cloud.google.com/load-balancer-type: Internal labels: {} cloud.google.com/load-balancer-type GKE 的 service LB 类型的参数 [1] service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: “intranet” ACK 的 service LB 类型的参数 [2]...

 ·  · 

Gorm - BeforeDelete无法获取正确条目

遇到问题:BeforeDelete 在删除时获取 SQL 不正确 BeforeDelete 代码如下 go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 func (t *Target) BeforeDelete(tx *gorm.DB) (err error) { // 找到与此 Target 相关的所有 Labels var labels []Label if err := tx.Model(t).Association("Labels").Find(&labels); err != nil { klog.V(4).Infof("Error fetching labels: %v", err) return err } for _, label := range labels { if err := tx.Delete(&label).Error; err != nil { klog....

 ·  ·