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

上海网站建设运营站霸网络搜索引擎搜索

上海网站建设运营站霸网络,搜索引擎搜索,甘肃手机版建站系统价格,wordpress太多重定向欢迎关注我的公众号: 目前刚开始写一个月,一共写了18篇原创文章,文章目录如下: istio多集群探秘,部署了50次多集群后我得出的结论 istio多集群链路追踪,附实操视频 istio防故障利器,你知道几…

 欢迎关注我的公众号:

 目前刚开始写一个月,一共写了18篇原创文章,文章目录如下:

istio多集群探秘,部署了50次多集群后我得出的结论

istio多集群链路追踪,附实操视频

istio防故障利器,你知道几个,istio新手不要读,太难!

istio业务权限控制,原来可以这么玩

istio实现非侵入压缩,微服务之间如何实现压缩

不懂envoyfilter也敢说精通istio系列-http-rbac-不要只会用AuthorizationPolicy配置权限

不懂envoyfilter也敢说精通istio系列-02-http-corsFilter-不要只会vs

不懂envoyfilter也敢说精通istio系列-03-http-csrf filter-再也不用再代码里写csrf逻辑了

不懂envoyfilter也敢说精通istio系列http-jwt_authn-不要只会RequestAuthorization

不懂envoyfilter也敢说精通istio系列-05-fault-filter-故障注入不止是vs

不懂envoyfilter也敢说精通istio系列-06-http-match-配置路由不只是vs

不懂envoyfilter也敢说精通istio系列-07-负载均衡配置不止是dr

不懂envoyfilter也敢说精通istio系列-08-连接池和断路器

不懂envoyfilter也敢说精通istio系列-09-http-route filter

不懂envoyfilter也敢说精通istio系列-network filter-redis proxy

不懂envoyfilter也敢说精通istio系列-network filter-HttpConnectionManager

不懂envoyfilter也敢说精通istio系列-ratelimit-istio ratelimit完全手册

 

————————————————

type ConvertOptions struct {//convert结构体PrintFlags *genericclioptions.PrintFlagsPrinter    printers.ResourcePrinterOutputVersion stringNamespace     stringbuilder   func() *resource.Builderlocal     boolvalidator func() (validation.Schema, error)resource.FilenameOptionsgenericclioptions.IOStreams
}
func NewConvertOptions(ioStreams genericclioptions.IOStreams) *ConvertOptions {return &ConvertOptions{//初始化convert结构体PrintFlags: genericclioptions.NewPrintFlags("converted").WithTypeSetter(scheme.Scheme).WithDefaultOutput("yaml"),local:      true,IOStreams:  ioStreams,}
}
//创建convert命令
func NewCmdConvert(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command {o := NewConvertOptions(ioStreams)//初始化结构体cmd := &cobra.Command{//创建cobra命令Use:                   "convert -f FILENAME",DisableFlagsInUseLine: true,Short:                 i18n.T("Convert config files between different API versions"),Long:                  convertLong,Example:               convertExample,Run: func(cmd *cobra.Command, args []string) {cmdutil.CheckErr(o.Complete(f, cmd))//准备cmdutil.CheckErr(o.RunConvert())//运行},}cmd.Flags().BoolVar(&o.local, "local", o.local, "If true, convert will NOT try to contact api-server but run locally.")//local选项cmd.Flags().StringVar(&o.OutputVersion, "output-version", o.OutputVersion, i18n.T("Output the formatted object with the given group version (for ex: 'extensions/v1beta1')."))//output-version选项o.PrintFlags.AddFlags(cmd)//打印选项cmdutil.AddValidateFlags(cmd)//校验选项cmdutil.AddFilenameOptionFlags(cmd, &o.FilenameOptions, "to need to get converted.")//文件选项return cmd
}
//准备
func (o *ConvertOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) (err error) {err = o.FilenameOptions.RequireFilenameOrKustomize()//文件是必须的if err != nil {return err}o.builder = f.NewBuilder//设置buildero.Namespace, _, err = f.ToRawKubeConfigLoader().Namespace()//设置namespaceif err != nil {return err}o.validator = func() (validation.Schema, error) {//设置schemaValidatorreturn f.Validator(cmdutil.GetFlagBool(cmd, "validate"))}// build the printero.Printer, err = o.PrintFlags.ToPrinter()//printflag转printerif err != nil {return err}return nil
}
//运行
func (o *ConvertOptions) RunConvert() error {// Convert must be removed from kubectl, since kubectl can not depend on// Kubernetes "internal" dependencies. These "internal" dependencies can// not be removed from convert. Another way to convert a resource is to// "kubectl apply" it to the cluster, then "kubectl get" at the desired version.// Another possible solution is to make convert a plugin.fmt.Fprintf(o.ErrOut, "kubectl convert is DEPRECATED and will be removed in a future version.\nIn order to convert, kubectl apply the object to the cluster, then kubectl get at the desired version.\n")//打印deprecated提示b := o.builder().WithScheme(scheme.Scheme).LocalParam(o.local)if !o.local {schema, err := o.validator()if err != nil {return err}b.Schema(schema)}r := b.NamespaceParam(o.Namespace).ContinueOnError().FilenameParam(false, &o.FilenameOptions).Flatten().Do()//用builder构造result对象err := r.Err()if err != nil {return err}singleItemImplied := falseinfos, err := r.IntoSingleItemImplied(&singleItemImplied).Infos()//获取infosif err != nil {return err}if len(infos) == 0 {//info为0个返回错误return fmt.Errorf("no objects passed to convert")}var specifiedOutputVersion schema.GroupVersionif len(o.OutputVersion) > 0 {//如果指定了output-versionspecifiedOutputVersion, err = schema.ParseGroupVersion(o.OutputVersion)//解析output-versionif err != nil {return err}}internalEncoder := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...)//获取codecinternalVersionJSONEncoder := unstructured.JSONFallbackEncoder{Encoder: internalEncoder}//构造json encoderobjects, err := asVersionedObject(infos, !singleItemImplied, specifiedOutputVersion, internalVersionJSONEncoder)//转换对象if err != nil {return err}return o.Printer.PrintObj(objects, o.Out)//打印结果
}
//转换对象
func asVersionedObject(infos []*resource.Info, forceList bool, specifiedOutputVersion schema.GroupVersion, encoder runtime.Encoder) (runtime.Object, error) {objects, err := asVersionedObjects(infos, specifiedOutputVersion, encoder)//转换对象if err != nil {return nil, err}var object runtime.Objectif len(objects) == 1 && !forceList {//如果结果是1个对象,不是forceListobject = objects[0]} else {object = &api.List{Items: objects}//把对象包装成listtargetVersions := []schema.GroupVersion{}if !specifiedOutputVersion.Empty() {//specifiedOutputVersion非空targetVersions = append(targetVersions, specifiedOutputVersion)//append version}targetVersions = append(targetVersions, schema.GroupVersion{Group: "", Version: "v1"})//append versionconverted, err := tryConvert(scheme.Scheme, object, targetVersions...)//尝试转换if err != nil {return nil, err}object = converted}actualVersion := object.GetObjectKind().GroupVersionKind()//获取对象实际的versionif actualVersion.Version != specifiedOutputVersion.Version {//如果对象实际version不等于指定的versiondefaultVersionInfo := ""if len(actualVersion.Version) > 0 {//实际version非空,设置打印消息defaultVersionInfo = fmt.Sprintf("Defaulting to %q", actualVersion.Version)}klog.V(1).Infof("info: the output version specified is invalid. %s\n", defaultVersionInfo)//输出klog日志}return object, nil//返回对象
}
//转换对象
func asVersionedObjects(infos []*resource.Info, specifiedOutputVersion schema.GroupVersion, encoder runtime.Encoder) ([]runtime.Object, error) {objects := []runtime.Object{}for _, info := range infos {//遍历infosif info.Object == nil {//info的object为空继续continue}targetVersions := []schema.GroupVersion{}//构造目标version slice// objects that are not part of api.Scheme must be converted to JSON// TODO: convert to map[string]interface{}, attach to runtime.Unknown?if !specifiedOutputVersion.Empty() {//指定的version非空if _, _, err := scheme.Scheme.ObjectKinds(info.Object); runtime.IsNotRegisteredError(err) {//获取对象kind,如果是IsNotRegisteredError错误// TODO: ideally this would encode to version, but we don't expose multiple codecs here.data, err := runtime.Encode(encoder, info.Object)//encode对象if err != nil {return nil, err}// TODO: Set ContentEncoding and ContentType.objects = append(objects, &runtime.Unknown{Raw: data})//追加objects,继续continue}targetVersions = append(targetVersions, specifiedOutputVersion)//追加目标vesions} else {//如果版本没指定gvks, _, err := scheme.Scheme.ObjectKinds(info.Object)//获取对象kindsif err == nil {for _, gvk := range gvks {targetVersions = append(targetVersions, scheme.Scheme.PrioritizedVersionsForGroup(gvk.Group)...)//追加目标versions}}}converted, err := tryConvert(scheme.Scheme, info.Object, targetVersions...)//尝试convertif err != nil {return nil, err}objects = append(objects, converted)//追加对象}return objects, nil//返回对象
}
//尝试转换
func tryConvert(converter runtime.ObjectConvertor, object runtime.Object, versions ...schema.GroupVersion) (runtime.Object, error) {var last errorfor _, version := range versions {//遍历目标版本if version.Empty() {//如果版本为空,直接返回对象return object, nil}obj, err := converter.ConvertToVersion(object, version)//转换对象到某个版本if err != nil {//有错误继续last = errcontinue}return obj, nil//返回对象}return nil, last//返回错误
}

http://www.lbrq.cn/news/2740249.html

相关文章:

  • 为什么做网站网站整站seo定制
  • 电子商务网站开发论文报告关键词搜索爱站
  • 米拓网站建设教程计算机培训班有用吗
  • 镜像网站做优化同城推广
  • 网站的信任度电商网站分析
  • 受欢迎的常州做网站上海网站营销seo电话
  • 网络规划设计师考试资料百度云新手学seo
  • 网页布局有哪些山西seo优化
  • 东莞做网站卓诚营销课程
  • 龙岗做商城网站建设seo推广软件费用
  • 如何优化网站关键词排名平台做推广的技巧
  • 网站平台做推广方案设计国际新闻最新消息今天 新闻
  • 南城网站建设百度爱采购排名
  • 深圳网站建设 卓越创图们网络推广
  • 中企动力中山分公司网站网站制作的流程是什么
  • 济南网站建设服务商北京seo相关
  • 凡客做网站怎么样爱站网seo工具
  • 南昌专业制作网站国内10大搜索引擎
  • php网站案例宁波seo推广哪家好
  • 长沙网站优化联系方式文军seo
  • 广告设计与制作包括哪些网站seo优化服务
  • 企业网站推广的模式网络优化报告
  • 专业制作网站爱战网官网
  • 众鱼深圳网站建设seo公司服务
  • 网页和网站的区别和联系百度的推广方式有哪些
  • 科技公司一般是做什么seo搜索引擎优化方案
  • 给我免费播放片高清在线观看扭曲的家庭恐怖站长工具seo综合查询权重
  • 网站导航栏高度百度推广客户端手机版
  • 衡阳市建设局网站旺道seo推广效果怎么样
  • seo建站推广微信广告朋友圈投放
  • 从频繁告警到平稳发布:服务冷启动 CPU 风暴优化实践00
  • Matplotlib直线绘制:从基础到三维空间的高级可视化
  • 解决 MySQL 查询速度缓慢的问题
  • P4069 [SDOI2016] 游戏 Solution
  • 第20章 LINQ 笔记
  • 大数据项目_基于Python+hadopp的城市空气污染数据关联性可视化分析系统源码_基于机器学习的城市空气污染预测与分析系统的设计与实现