MaxCloud User Docs
演示登录
  • Welcome
    • 介绍
    • 快速开始
  • 使用说明
    • 集群管理
      • 导入集群
      • 创建集群
      • 关联授权
      • 集群功能
    • 项目管理
      • 事件订阅
    • 应用管理
      • 创建应用
      • 灰度发布
      • 持续集成
  • 客户端工具
    • kubemax
    • kubectl
    • 自定义客户端
  • MrMax
    • MrMax客户端使用指南
    • Cybercore
    • SDK Release Version
  • 开发者指南
    • MaxLang语言基础
    • MaxLang内置方法
    • MaxLang操作资源示例
  • 社区活动
    • 技术交流
      • 2023/05/28 亚马逊云科技 Community Day 深圳站
    • 技术文章
      • 2023.5 记一次EKS 1.22->1.26 升级
      • 2023.8 创建EKS后要关注的几个事情
    • Kubernetes Workshop
      • 基础篇
        • Docker学习环境
        • 开始使用Docker
        • 开始使用Kubernetes
      • 实战篇
        • Pod:运行于Kubernetes中的容器
        • ReplicationController:部署托管的pods
        • Service:让客户端发现pod并与之通信
        • Volumes:给containers挂载磁盘
        • ConfigMap和Secret:配置应用程序
        • Deployment: 声明式地升级应用
        • StatefulSet:部署有状态的多副本应用
      • 实践篇
        • Helm Charts(上)
          • 什么是Helm和Chart?
          • 使用Helm
        • Helm Charts(中)
          • 创建自己的chart
          • Chart模版构造和语法
          • 使用仓库管理chart
        • Helm Charts(下)
          • 一个实际的项目
          • 最后,Helm不是必须的
        • 持续集成(Gitops)
由 GitBook 提供支持
在本页
  • MaxLang 操作MaxCloud相关功能示例
  • 登录MaxCloud
  • 使用Credential 方式登录MaxCloud
  • 获取Team列表
  • 获取Team下的所有项目列表
  • 获取项目下的所有集群列表
  • 初始化集群参数变量
  • 设置当前环境的kubeconfig
  • 创建命名空间
  • 获取资源Yaml
  • Describe 资源
  • Scale Deployment
  • Scale Statefulset
  • 列举所有资源
  • 获取随机字符串
  • 把Maxlang对象转换成Json
  • 等待N秒
  • 使用模版Apply Yaml
  • HPA
  • 锁定HPA
  • 设置HPA 的Replicas
  • Helm 安装
  • 查循已安装的Helm列表
  • AWS ASG Size查询和更改
  • 获取asg
  • Bucket 管理
  • 列出Bucket
  • 创建文件夹
  • 列出Bucket 中的文件

这有帮助吗?

  1. 开发者指南

MaxLang操作资源示例

MaxLang 操作MaxCloud相关功能示例

登录MaxCloud

loginMaxCloud("用户名","密码")

参数1:用户名(登录MaxCloud账户)

参数2:密码(登录MaxCloud密码)

loginMaxcloud("jianwen.gao@mobvista.com", <<password>>)

使用Credential 方式登录MaxCloud

setCredential("maxcloud", "jianwen.gao@mobvista.com", <<password>>)

loginMaxcloud("maxcloud")

setCredential("maxcloudab", "jianwen.gao@mobvista.com", <<password>>)

loginMaxcloud("maxcloudab")

获取Team列表

获取登录账号可以使用的所有Team列表

listTeam()

获取Team下的所有项目列表

listProject(teamId)

参数1:团队ID

listProject(1)

获取项目下的所有集群列表

listCluster(teamId, projectId)

参数1:团队ID

参数2:项目ID

listCluster(1, 79)

初始化集群参数变量

使用一个map变量保存teamId、projectId,clusterId、namespace 等参数,使用一个方便识别的名称,后续集群相关方法调用第一个参数都传入这个变量,用于指定集群环境。

teamId,projectId,clusterId 等参数可以直接从MaxCloud项目管理页面复制,如下图所示

从网页中复制的一下内容,只有 teamId、projectId、 clusterId、 namespace 几个参数是必填的,Name相关参数只是为了方便您识别

Crazywolf_test_ack_maxcloud_bj_demo = {
        "teamId": 1,
        "teamName": "MaxCloud",
        "projectId": 62,
        "projectName": "Crazywolf-test",
        "clusterId": 22,
        "clusterName": "ack-maxcloud-bj-demo",
        "namespace": "crazywolf"
}

设置当前环境的kubeconfig

参数1:集群环境变量

此函数执行后会把当前集群环境变量指定集群的kubeconfig放在当前环境的~/.kube/config 文件中,后续可以使用 exec(xxx)执行shell 命令,如果使用exec(kubectl get pod -n namespaceName) 就可以获取指定namespace下的pod列表

如果需要切换kubeconfig需要重新执行useCluster,该操作会用新集群kubeconfig覆盖之前的文件

useCluster(bj_demo_crazywolf)

展示设置集群kubeconfig后使用shell命令操作集群

exec("kubectl get deployment -n crazywolf")

创建命名空间

参数1:集群环境变量

参数2:新命名空间名称

createNamespace(bj_demo_crazywolf, "gjw-0910")

获取资源Yaml

参数1:集群环境变量

参数2:资源类型

参数3:资源名称

getYaml(bj_demo_crazywolf, "deployment","ngxin-dep-0")

Describe 资源

参数1:集群环境变量

参数2: 资源类型

参数3:资源名称

describeResource(bj_demo_crazywolf, "deployment", "ngxin-dep-0")

Scale Deployment

参数1:集群环境变量

参数2:Deployment 名称

参数3: Replicas 数量

scaleDeployment(bj_demo_crazywolf, "ngxin-dep-0", 1)

Scale Statefulset

参数1:集群环境变量

参数2:Statefulset 名称

参数3:Replicas 数量

scaleStatefulset(bj_demo_crazywolf, "xxxx", 2)

列举所有资源

参数1:集群环境变量

参数2:资源类型

listResource 指定资源类型后可以获取上面指定集群命名空间下的所有资源 listResource 可以只传入一个类型参数,也可以传入第二个参数作为零时命名空间(不会覆盖之前useCluster设置的命名空间)

目前支持的资源为:

  • deployment

  • job

  • cronjob

  • daemonset

  • statefulset

  • service

  • ingress

  • persistentvolumeclaim

  • configmap

  • secret

  • gateway

  • namespace

  • pod

  • horizontalpodautoscaler

  • serviceaccount

  • replicaset

  • poddisruptionbudget

  • node

  • storageclass

listResource(bj_demo_crazywolf, "deployment")

获取随机字符串

randStr参数为需要获取随机字符串长度,如果不传参数默认为6

randStr(6)

把Maxlang对象转换成Json

测试把Map转换为json

/*
声明一个MAP 对象
*/
mapObj = {
    "name" : "CrazyWolf",
    "age" : 18,
    "address" : "beiijng"
}
/* 把map 对象转换成json */
toJson(mapObj)

测试把数组对象转换成json

/*
声明一个Array 对象
*/

arrayObj = [1, true, "stringObj"]

/* 
把map 对象转换成json 
*/
toJson(arrayObj)

测试把函数返回对象转为json

toJson(listTeam())

等待N秒

sleep(second)

参数1:休眠秒数

sleep(5)

使用模版Apply Yaml

声明字符串模版

模版语法同Golang 语法

configStr = `apiVersion: v1
kind: ConfigMap
metadata:
  name: myconfigmap-{{.nameSuffix}}
  namespace: crazywolf
  labels:
    app: myapplication
data:
  data: {{.randData}}`

声明一个Map数据用于替换上面模版的占位

Map 数据key、value 都必须是字符串,暂不支持其他类型

randstr = randStr(6)
data = {"nameSuffix":randstr, "randData":randstr}

使用fillTemp 方法用map 替换模版中的占位符,获取最终可执行的yaml字符串

yaml = fillTemp(configStr, data)
yaml

调用applyYaml 方法在集群中部署yaml

applyYaml(bj_demo_crazywolf, yaml)

HPA

锁定HPA

参数1:当前集群环境 参数2:HPA 名称 参数3:minReplicas

设置minReplicas值,默认MaxReplicas不变,如果当前MaxReplicas小于要设置的minReplicas则修改 MaxReplicas为minReplicas一样 例如:

demo-hap
 minReplicas: 2
 maxReplicas: 5

调用 localHpa(env, "demo-hpa", 3),锁定为3则执行后结果为

demo-hap
 minReplicas: 3
 maxReplicas: 5

如果再次调用调用 localHpa(env, "demo-hpa", 10),锁定为10则执行后结果为

demo-hap
 minReplicas: 10
 maxReplicas: 10
lockHpa(bj_demo_crazywolf, "gjw-test", 1)

设置HPA 的Replicas

参数1:HPA名称

参数2:minReplicas

参数3:maxReplicas

setHpaReplicas(bj_demo_crazywolf, "gjw-test", 1, 2)

获取HPA的minReplicas

参数1:集群环境

参数2:HPA名称

getHpaMin(bj_demo_crazywolf, "gjw-test")

获取HPA的maxReplicas

参数1:集群环境

参数2:HPA名称

getHpaMax(bj_demo_crazywolf, "gjw-test")

获取HPA当前Replicas

参数1:集群环境

参数2:HPA名称

getHpaCurrent(bj_demo_crazywolf, "gjw-test")

Helm 安装

添加Repo

参数1:集群环境变量

参数2:repo name

参数3:repo URL

addOrUpdateRepo(bj_demo_crazywolf, "bitnami", "https://charts.bitnami.com/bitnami")

设置sets

sets = {
"wordpressBlogName" : "CrazyWolf3453456"
}

安装Chart

参数1:集群环境变量

参数2:releaseName

参数3:chart name

参数4:chart版本

参数5:sets参数 (可选)

installOrUpgradeChart(bj_demo_crazywolf, "my-wordpress", "bitnami/wordpress", "15.2.5", sets)

查循已安装的Helm列表

参…-stage-old.detailroi.mintegral.com")

AWS ASG Size查询和更改

ASG 相关方法都支持通过公共方法执行云商,或者用云商的方法名,以获取asg为例

  • 参数中指定云商(aws、aliyun、huawei)


    getASG("credential", "aws","us-west-2", "kmax-demo-asg-small")
  • 直接用云商的方法

    getAwsASG("credential", "us-west-2", "kmax-demo-asg-small")

listASGs、getASG、updateASG、lockASG 都支持上述使用方式

usage:

列出region的ASG, 如果asgName是空, 列出所有的ASG

listASGs("credential", "aws", region, asgName)

更新ASG的最小容量、最大容量、所需容量

updateASG("credential","aws", region, asgName, miniSize, maxSize, desiredSize)

获取ASG的最大、最小、所需容量

getASG("credential","aws", region, asgName)

锁定ASG到lockSize

lockASG("credential","aws", region, asgName, lockSize)

e.g.

    listASGs("credential", "aws", "us-west-2", "kmax-demo-asg-small")
	getASG("credential", "aws","us-west-2", "kmax-demo-asg-small")
	updateASG("credential", "aws", "us-west-2", "kmax-demo-asg-small", 2, 2, 2) 
	lockASG("credential", "aws", "us-west-2", "kmax-demo-asg-small", 2) 
    
    listAwsASGs("credential", "us-west-2", "kmax-demo-asg-small")
	getAwsASG("credential", "us-west-2", "kmax-demo-asg-small")
	updateAwsASG("credential", "us-west-2", "kmax-demo-asg-small", 2, 2, 2) 
	lockAwsASG("credential", "us-west-2", "kmax-demo-asg-small", 2) 

查询ASG(s)

参数1:云商credential ,请先试用setCredential(name, key, value 设置)

参数2:region

参数3:asgName (可选)

  • 获取Aws asg列表

listAwsASGs("credential", "us-west-2")

listAwsASGs("credential", "us-west-2", "asgName")
  • 获取阿里云 asg 列表

listAliASGs("credential", "us-west-2")

listAliASGs("credential", "us-west-2", "asgName")
  • 获取huawei asg 列表

listHwASGs("credential", "us-west-2")

listHwASGs("credential", "us-west-2", "asgName")

使用参数指定云商

listHwASGs("credential", "aws", "us-west-2")

listHwASGs("credential", "aws", "us-west-2", "asgName")

listAwsASGs("credential", "us-west-2")
listAliASGs("credential", "us-west-2")
listHwASGs("credential", "us-west-2")

更改ASG的最小容量、最大容量、所需容量

参数1:云商credential ,请先试用setCredential(name, key, value 设置)

参数2:region

参数3:asgName

参数4:最小

参数5:最大

参数6:期望值

  • 修改Aws asg

updateAwsASG("credential", "us-west-2", "asgName", 1, 100, 50)
  • 修改阿里云 asg

updateAliASG("credential", "us-west-2", "asgName", 1, 100, 50)
  • 修改 huawei asg

updateHwASG("credential", "us-west-2", "asgName" ,1, 100, 50)

使用参数指定云商

updateHwASG("credential", "aws", "us-west-2", "asgName" ,1, 100, 50)
updateAwsASG("credential", "us-west-2", "kmax-demo-asg-small", 2, 2, 2)
updateAliASG("credential", "us-west-2", "kmax-demo-asg-small", 2, 2, 2)
updateHwASG("credential", "us-west-2", "kmax-demo-asg-small", 2, 2, 2)

锁定ASG容量

参数1:云商credential ,请先试用setCredential(name, key, value 设置)

参数2:region

参数3:asgName

参数4:锁定值

如果参数4锁定值小于1,则最小值会被修改为当前的期望值 如果参数4大于最大值,则最大值会被修改为锁定值 如果期望值小于参数4锁定值,则期望值修改为所定值

  • 锁定Aws asg

lockAwsASG("credential", "us-west-2", "asgName", 10)
  • 锁定aliyun asg

lockAliASG("credential", "us-west-2", "asgName", 10)
  • 锁定huawei asg

lockHwASG("credential", "us-west-2", "asgName", 10)

lockAwsASG("credential", "us-west-2", "asgName", 10)
lockAliASG("credential", "us-west-2", "asgName", 10)
lockHwASG("credential", "us-west-2", "asgName", 10)

获取asg

参数1:云商credential ,请先试用setCredential(name, key, value 设置)

参数2:region

参数3:asgName

  • 获取Aws asg列表

getAwsASG("credential", "us-west-2", "asgName")
  • 获取阿里云 asg 列表

getAliASG("credential", "us-west-2", "asgName")
  • 获取huawei asg 列表

getHwASG("credential", "us-west-2", "asgName")

getAwsASG("credential", "us-west-2", "asgName")
getAliASG("credential", "us-west-2", "asgName")
getHwASG("credential", "us-west-2", "asgName")

Bucket 管理

列出Bucket

listBucket

参数1:credential

参数2:云商provider

参数3:endpoint(aliyun的时候必传)

  • 列出Aws bucket

listBucket("credential", "aws")
  • 列出Aliyun bucket

listBucket("credential", "aliyun",  "https://oss-cn-beijing.aliyuncs.com")

listBucket("credential", "aws")
listBucket("credential", "aliyun",  "https://oss-cn-beijing.aliyuncs.com")

创建文件夹

newBucketDir

参数1:credential

参数2:云商provider (aws,aliyun)

参数3:bucketName

参数4:dirName

参数5:endpoint(aliyun的时候必传)

  • aws 指定bucket下创建文件

newBucketDir("credential", "aws", "bucketName", "test_dirname")
  • aliyun 指定bucket下创建文件

newBucketDir("credential", "aliyun", "bucketName", "test_dirname", "https://oss-cn-beijing.aliyuncs.com")

newBucketDir("credential", "aws", "bucketName", "test_dirname")
newBucketDir("credential", "aliyun", "bucketName", "test_dirname", "https://oss-cn-beijing.aliyuncs.com")

列出Bucket 中的文件

listBucketFile

参数1:credential

参数2:云商provider

参数3:bucketName

参数4:前缀 Prefix

参数5:endpoint(aliyun的时候必传)

  • 列出aws 指定bucket 下的文件

listBucketFile("credential", "aws", "bucketName", "test_dirname/")
  • 列出aliyun 指定bucket 下的文件

listBucketFile("credential", "aliyun", "bucketName", "test_dirname/", "https://oss-cn-beijing.aliyuncs.com")

listBucketFile("credential", "aws", "bucketName", "test_dirname/")
listBucketFile("credential", "aliyun", "bucketName", "test_dirname/", "https://oss-cn-beijing.aliyuncs.com")
上一页MaxLang内置方法下一页技术交流

最后更新于1年前

这有帮助吗?

image-20221010151738693