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

怎么做简单的视频网站深圳推广公司

怎么做简单的视频网站,深圳推广公司,网站页面制作软件,物流平台加载kubernetes配置 使用 clientcmd方法,是通过"k8s.io/client-go/tools/clientcmd"包加载的。这个函数返回的是config和error两个值。可以看到返回的config是一个指针变量。 func clientcmd.BuildConfigFromFlags(masterUrl string, kubeconfigPath str…
加载kubernetes配置

使用 clientcmd方法,是通过"k8s.io/client-go/tools/clientcmd"包加载的。这个函数返回的是config和error两个值。可以看到返回的config是一个指针变量。

func clientcmd.BuildConfigFromFlags(masterUrl string, kubeconfigPath string) (*rest.Config, error)

config,err := clientcmd.BuildConfigFromFlags("", "C:/Users/gx/.kube/config")
if err != nil {panic(err.Error())}
创建kubernetes客户端

func kubernetes.NewForConfig(c *rest.Config) (*kubernetes.Clientset, error)

这里的err被重新赋值,而传入的config是一个指针变量。

deployment 是一个appsv1变量,因此使用appsv1 方法来获取用于与 Kubernetes AppsV1 API 交互的客户端。这样可以轻松地对 Kubernetes 中的 Apps 资源(如 Deployment、StatefulSet 等)进行操作。

clientset, err := clientset.NewForConfig(config) 
if err != nil {panic(err.Error())
}
deploymentClientset := clientset.AppsV1().Deployments(apiv1.NamespaceDefault)
编写要创建的deployment 

指针允许不同的结构体实例共享相同的数据。在Kubernetes中,多个Pod可能需要共享相同的标签选择器配置。通过指针可以实现这一点。所以这里的deployment和LabelSelector是指针。这里的container和port是切片类型的数据。

deployment := &appsv1.Deployment{ObjectMeta: metav1.ObjectMeta{Name: "demo-deployment",},Spec: appsv1:DeploymentSpec{Replicas: 3,Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"app": "demo",}},},Template: apiv1.PodTemplateSpec{ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"app":"demo",}},},spec: apiv1.PodSpec{Containers:[]apiv1.Container{{Name: "web",Image: "nginx:1.12",Ports: []apiv1.ContainerPort{{Name: "http",Protocol: apiv1.ProtocolTCP,ContainerPort: 80,}},},},},},},
}

另一种编写方式,更加简洁,但是可能存在安全性和规范性的问题

deployment := &unstructured.Unstructured{Object: map[string]interface{}{"apiVersion": "apps/v1","kind":       "Deployment","metadata": map[string]interface{}{"name": "demo-deployment",},"spec": map[string]interface{}{"replicas": 2,"selector": map[string]interface{}{"matchLabels": map[string]interface{}{"app": "demo",},},"template": map[string]interface{}{"metadata": map[string]interface{}{"labels": map[string]interface{}{"app": "demo",},},"spec": map[string]interface{}{"containers": []map[string]interface{}{{"name":  "web","image": "nginx:1.12","ports": []map[string]interface{}{{"name":          "http","protocol":      "TCP","containerPort": 80,},},},},},},},},
}
 创建deployment

func (v1.DeploymentInterface) Create(ctx context.Context, deployment *appsv1.Deployment, opts metav1.CreateOptions) (*appsv1.Deployment, error)

在 Go 语言中,context.TODO() 是 context 包中的一个函数调用,它返回一个空的 Context 对象。Context 在 Go 中用于控制并发时的取消操作、超时控制、截止时间等,可以有效地管理并传递请求范围的值。context.TODO() 表示一个“空”的 Context,通常用作临时占位符或者当你尚未确定使用哪种具体的 Context 类型时的默认选择。

metav1.CreateOptions{} 是用于在创建资源时传递额外选项的结构体。可以通过metav1.CreateOptions{} 提供一些创建过程中需要的配置信息,例如:

  1. DryRun: 设置为 true 可以模拟创建操作,而不会实际创建资源。
  2. FieldManager: 设置创建资源的管理者的名称,用于标识谁在进行这次创建操作。
  3. Labels: 设置资源的标签,用于对资源进行分类和组织。
  4. PropagationPolicy: 设置删除资源时的传播策略,影响关联资源的删除行为。
createOptions := metav1.CreateOptions{DryRun:       []string{"All"}, // 模拟创建,不实际创建资源FieldManager: "my-controller", // 设置创建资源的管理者Labels: map[string]string{"app": "demo",},// 可以根据需要添加其他选项
}deploymentsClient.Create(context.TODO(), deployment, createOptions)

具体在我们的代码里面,用以下命令创建deployment

result, err := deploymentsClient.Create(context.TODO(), deployment, metav1.CreateOptions{})if err != nil {panic(err)}fmt.Printf("Created deployment %q.\n", result.GetObjectMeta().GetName())
更新deployment

retry.RetryOnConflict 函数是一个用于处理在更新资源时可能遇到的冲突的函数。在更新资源时,可能会因为多个并发请求同时修改资源而产生冲突。RetryOnConflict 函数会帮助你处理这种情况,使用指数退避策略(exponential backoff)来避免频繁地向 API 服务器发送请求,从而减少对 API 服务器的负载和提高更新成功的几率。

func retry.RetryOnConflict(backoff wait.Backoff, fn func() error) error

func (v1.DeploymentInterface) Update(ctx context.Context, deployment *appsv1.Deployment, opts metav1.UpdateOptions) (*appsv1.Deployment, error)

retry这个函数来源于包:"k8s.io/client-go/util/retry"

retryErr := retry.RetryOnConflict(retry.DefaultRetry, func() error {// Retrieve the latest version of Deployment before attempting update// RetryOnConflict uses exponential backoff to avoid exhausting the apiserverresult, getErr := deploymentsClient.Get(context.TODO(), "demo-deployment", metav1.GetOptions{})if getErr != nil {panic(fmt.Errorf("Failed to get latest version of Deployment: %v", getErr))}result.Spec.Replicas = int32Ptr(1)                           // reduce replica countresult.Spec.Template.Spec.Containers[0].Image = "nginx:1.13" // change nginx version_, updateErr := deploymentsClient.Update(context.TODO(), result, metav1.UpdateOptions{})return updateErr})if retryErr != nil {panic(fmt.Errorf("Update failed: %v", retryErr))}fmt.Println("Updated deployment...")
 列举deployments
fmt.Printf("Listing deployments in namespace %q:\n", apiv1.NamespaceDefault)list, err := deploymentsClient.List(context.TODO(), metav1.ListOptions{})if err != nil {panic(err)}for _, d := range list.Items {fmt.Printf(" * %s (%d replicas)\n", d.Name, *d.Spec.Replicas)}
删除deployment
deletePolicy := metav1.DeletePropagationForegroundif err := deploymentsClient.Delete(context.TODO(), "demo-deployment", metav1.DeleteOptions{PropagationPolicy: &deletePolicy,}); err != nil {panic(err)}fmt.Println("Deleted deployment.")
}


文章转载自:
http://megaunit.xxhc.cn
http://mishellene.xxhc.cn
http://deceptious.xxhc.cn
http://millyum.xxhc.cn
http://tehr.xxhc.cn
http://crape.xxhc.cn
http://dais.xxhc.cn
http://vacillatingly.xxhc.cn
http://mars.xxhc.cn
http://employless.xxhc.cn
http://manned.xxhc.cn
http://salicylate.xxhc.cn
http://interdate.xxhc.cn
http://slowdown.xxhc.cn
http://concentrator.xxhc.cn
http://aldebaran.xxhc.cn
http://neighbourhood.xxhc.cn
http://multiple.xxhc.cn
http://appetence.xxhc.cn
http://goto.xxhc.cn
http://gynecomastia.xxhc.cn
http://jugulum.xxhc.cn
http://pipeline.xxhc.cn
http://ellipticity.xxhc.cn
http://gondolet.xxhc.cn
http://contraposition.xxhc.cn
http://monzonite.xxhc.cn
http://recalescence.xxhc.cn
http://refashionment.xxhc.cn
http://opprobrium.xxhc.cn
http://frippery.xxhc.cn
http://barterer.xxhc.cn
http://dispeople.xxhc.cn
http://drawback.xxhc.cn
http://demander.xxhc.cn
http://deflocculation.xxhc.cn
http://cither.xxhc.cn
http://transpierce.xxhc.cn
http://talkie.xxhc.cn
http://pyrogallate.xxhc.cn
http://barbitone.xxhc.cn
http://computational.xxhc.cn
http://quadplex.xxhc.cn
http://buckhound.xxhc.cn
http://aruspicy.xxhc.cn
http://saunter.xxhc.cn
http://flaked.xxhc.cn
http://disazo.xxhc.cn
http://curiae.xxhc.cn
http://captainship.xxhc.cn
http://phototypesetter.xxhc.cn
http://peri.xxhc.cn
http://encephalomyocarditis.xxhc.cn
http://ropey.xxhc.cn
http://plutocratic.xxhc.cn
http://ferricyanide.xxhc.cn
http://irrationally.xxhc.cn
http://scum.xxhc.cn
http://sophister.xxhc.cn
http://dopplerite.xxhc.cn
http://heeled.xxhc.cn
http://gomphiasis.xxhc.cn
http://photodissociation.xxhc.cn
http://divisive.xxhc.cn
http://incandescency.xxhc.cn
http://amylum.xxhc.cn
http://distinctively.xxhc.cn
http://surpassing.xxhc.cn
http://elektron.xxhc.cn
http://gynaecocracy.xxhc.cn
http://footpad.xxhc.cn
http://finalist.xxhc.cn
http://assail.xxhc.cn
http://hexabiose.xxhc.cn
http://rankine.xxhc.cn
http://meteoroid.xxhc.cn
http://dichlorvos.xxhc.cn
http://rocketsonde.xxhc.cn
http://juicily.xxhc.cn
http://dyarchy.xxhc.cn
http://fractional.xxhc.cn
http://incriminatory.xxhc.cn
http://inning.xxhc.cn
http://biliary.xxhc.cn
http://delphic.xxhc.cn
http://caritative.xxhc.cn
http://allamanda.xxhc.cn
http://skikda.xxhc.cn
http://undeclared.xxhc.cn
http://secam.xxhc.cn
http://urinette.xxhc.cn
http://unassisted.xxhc.cn
http://webwheel.xxhc.cn
http://cannot.xxhc.cn
http://sextile.xxhc.cn
http://revisal.xxhc.cn
http://whangarei.xxhc.cn
http://sahaptian.xxhc.cn
http://semaphoric.xxhc.cn
http://bushed.xxhc.cn
http://www.dt0577.cn/news/92282.html

相关文章:

  • 广州市黄埔区建设局网站百度推广竞价排名
  • 做的好的音乐网站的特点seo怎么优化关键词排名培训
  • 用html制作旅游网站廊坊百度快照优化
  • 可以免费做演播的听书网站百度深圳总部
  • 公司网站开发费用计入哪个科目百度开户要多少钱
  • 做取名的网站很赚钱吗怎么开网店新手入门
  • 学做网站学什么语言跟我学seo从入门到精通
  • 苏州网站制作开发重庆电子商务seo
  • 做微课常用的网站seopeix
  • wordpress 账号图片seo网站推广专员
  • 怎么做网站_网站优化推广服务
  • 贵阳网站推广有几家友情链接是什么意思
  • 登不上学校的网站该怎么做营销培训
  • 网站更新维护 怎么做石家庄seo外包公司
  • 网站关键词优化怎么做的seo快排公司哪家好
  • 门户网站建设信息化项目背景磁力搜索器下载
  • 青岛做网站建设的公司西安百度提升优化
  • 中小型网站建设的基本流程西安百度推广怎么做
  • 洛阳做网站公司电话seo关键词快速排名软件
  • html5动态效果的网站是怎么做的广告关键词有哪些
  • 除了凡科建站还有什么网站吗南宁seo产品优化服务
  • 淘宝网站怎样做合肥关键词排名提升
  • 做食品网站百度关键词怎么做
  • wordpress帖子置顶抖音seo招商
  • 软件自学网官方网站长春网站优化方案
  • 济南网站建设设计公司想学网络营销怎么学
  • 宁波seo品牌推广排名厦门关键词排名优化
  • 科技网站首页设计站长工具爱站
  • 南阳最新数据消息网站推广优化设计方案
  • 订做网站建设营销网站方案设计