当前位置: 首页 > news >正文

建设博物馆网站南京百家湖网站建设

建设博物馆网站,南京百家湖网站建设,平面设计培训费用,网站搭建实训报告在工作中需要对kubernetes进行自定义资源的开发#xff0c;操作K8s的资源肯定是必不可少的。K8s原生语言是用Go编写的#xff0c;所以在CRD中使用client-go来操作资源。本次介绍一下使用client-go来操作Deployment。 1. 创建main函数 func main() {homePath : homedir.Home…在工作中需要对kubernetes进行自定义资源的开发操作K8s的资源肯定是必不可少的。K8s原生语言是用Go编写的所以在CRD中使用client-go来操作资源。本次介绍一下使用client-go来操作Deployment。 1. 创建main函数 func main() {homePath : homedir.HomeDir()if homePath {panic(homePath is empty)}kubeConfig : filepath.Join(homePath, .kube, config)config, err : clientcmd.BuildConfigFromFlags(, kubeConfig)if err ! nil {panic(err)}// use the config to create a clientclientSet, err : kubernetes.NewForConfig(config)if err ! nil {panic(err)}dpClient : clientSet.AppsV1().Deployments(corev1.NamespaceDefault)log.Println(start handle deployments...)// 创建一个deploymenterr createDeployment(dpClient)if err ! nil {panic(err)}log.Println(create deployment success)-time.Tick(time.Minute * 1)// 修改一个deploymenterr updateDeployment(dpClient)if err ! nil {panic(err)}log.Println(update deployment success)-time.Tick(time.Minute * 1)// 删除一个deploymenterr deleteDeployment(dpClient)if err ! nil {panic(err)}log.Println(delete deployment success) }这里创建了一个main函数首先获取到kubernetes配置文件并创建出clientSet再使用clientSet创建出来操作deployment的客户端。 随后定义了三个函数分别是 创建DeploymentcreateDeployment 修改DeploymentupdateDeployment 删除DeploymentdeleteDeployment 2. 创建Deployment 接下来编写createDeployment函数此函数将在kubernetes集群中生成Deployment func createDeployment(dpClient v1.DeploymentInterface) error {replicas : int32(3)newDp : appv1.Deployment{ObjectMeta: metav1.ObjectMeta{Name: nginx-deployment,},Spec: appv1.DeploymentSpec{Replicas: replicas,Selector: metav1.LabelSelector{MatchLabels: map[string]string{app: nginx,},},Template: corev1.PodTemplateSpec{ObjectMeta: metav1.ObjectMeta{// 这里的label要和上面的selector的label一致Labels: map[string]string{app: nginx,},},Spec: corev1.PodSpec{Containers: []corev1.Container{{Name: nginx,Image: nginx:1.16,Ports: []corev1.ContainerPort{{ContainerPort: 80,Name: http,Protocol: corev1.ProtocolTCP,},},},},},},},}_, err : dpClient.Create(context.TODO(), newDp, metav1.CreateOptions{})if err ! nil {return err}return nil }定义副本数量3个编写Deployment配置定义ObjectMeta、Spec、Template各种参数 这里提一句Selector中app: “nginx” 和 Template中是一样的因为Deployment是通过标签关连到所属副本中pod的 3. 修改Deployment 在接下来的操作中将nginx的版本变更一下来达到修改的目的 func updateDeployment(dpClient v1.DeploymentInterface) error {dp, err : dpClient.Get(context.TODO(), nginx-deployment, metav1.GetOptions{})if err ! nil {return err}dp.Spec.Template.Spec.Containers[0].Image nginx:1.17updateDp, err : dpClient.Update(context.TODO(), dp, metav1.UpdateOptions{})if err ! nil {return err}return retry.RetryOnConflict(retry.DefaultRetry, func() error {_, err : dpClient.Update(context.TODO(), updateDp, metav1.UpdateOptions{})return err}) }此处的操作为现将之前创建好的dp获取到然后进行nginx镜像版本的变更随后进行使用客户端进行更新操作 此外还通过retry.RetryOnConflict来解决更新冲突 4. 删除Deployment func deleteDeployment(dpClient v1.DeploymentInterface) error {deletePolicy : metav1.DeletePropagationForegrounderr : dpClient.Delete(context.TODO(), nginx-deployment, metav1.DeleteOptions{PropagationPolicy: deletePolicy,})if err ! nil {return err}return nil }这里的删除操作定义了删除选项表示前台级联删除。在这种模式下删除操作会首先返回删除的资源然后在后台删除关联的依赖对象。在 Kubernetes API 中前台级联删除的表现形式是首先将删除的对象的 metadata.deletionTimestamp 字段设置为当前时间然后客户端会在此对象的 metadata.finalizers 列表中看到值 foregroundDeletion。在依赖对象被删除后Kubernetes 垃圾收集器会最后删除这个对象。 5. build 代码编写完成打包成二进制 go build -o ./handle_deployment此时观察deployment所有流程效果 完整代码地址https://github.com/xiaowei6688/k8s_go_example/tree/dev/handle_deployment
http://www.dnsts.com.cn/news/170967.html

相关文章:

  • 巴南城乡建设网站济南品质网站建设费用
  • 那些做环保网站的好处网页传奇网站
  • 自己做网站卖视频关于网站规划建设方案书
  • 做一款网站注意啥网站用什么字体做正文
  • 3d演示中国空间站建造历程wordpress 自定义栏目 删除
  • 竞价网站制作资阳大众网app下载
  • 药学专业网站北京软件公司名称大全
  • 网站开发语言排行榜wordpress互动
  • 和龙建设局网站做网站的技术
  • 电子商务网站建设购物车百度人气榜排名
  • 娄底市建设局网站镇江网页设计哪家好
  • 剑阁住房和城乡建设厅网站新泰网页设计
  • 贵港购物网站开发设计wordpress音乐
  • 解析视频的网站怎么做和城乡建设厅网站
  • 从零做网站服装网站建设策划书的基本结构
  • 多伦多网站建设多少钱站长工具seo综合查询降级
  • 网页设计网站图片软件产品设计方案
  • 房地产论坛网站建设wordpress的xmlrpc
  • 哈尔滨网站建设服务公司深圳网站平台制作
  • 电子购物网站建设目的吴江建设局网站
  • 网站用心1号网站建设 高端网站建设
  • 苏州网站建设哪家好网站开发发布
  • 兰州市城乡建设局网站旅游网站策划营销
  • 庆元县住房和城乡建设局网站为什么不能去外包公司
  • 济宁网站建设吊装快速制作简单的网站
  • 泰安网站建设哪里有爱采购
  • 衡水网站建设费用南京江宁网站建设
  • 网站开发设计费 怎么入账关于公示网站建设的计划书
  • 茂名建网站广州市手机网站建设平台
  • 网站推广的含义哈尔滨市招标网