详情页标题前

阿里云容器服务ACK使用Kubernetes API-云淘科技

详情页1

本文将基于cURL命令简单演示如何以REST的方式使用Kubernetes API,方便您使用开发语言原生的HTTPS方式操作Kubernetes集群。演示包括创建和删除Pod,创建和修改Deployment

获取集群访问凭证KubeConfig

  1. 登录容器服务管理控制台。
  2. 单击前往RAM进行授权进入云资源访问授权页面,然后单击同意授权

    完成以上授权后,刷新控制台即可使用容器服务ACK。

  3. 在控制台左侧导航栏,单击集群
  4. 集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情
  5. 单击连接信息页签,查看集群访问凭证(KubeConfig),将KubeConfig文件保存到本地。

  6. 从KubeConfig文件中提取CA、Key和APIServer信息,命令如下。

    cat  ./kubeconfig |grep client-certificate-data | awk -F ' ' '{print $2}' |base64 -d > ./client-cert.pem
    cat  ./kubeconfig |grep client-key-data | awk -F ' ' '{print $2}' |base64 -d > ./client-key.pem
    APISERVER=`cat  ./kubeconfig |grep server | awk -F ' ' '{print $2}'`

使用cURL命令操作Kubernetes API

执行以下命令查看当前集群中所有Namespaces。

curl --cert ./client-cert.pem --key ./client-key.pem -k $APISERVER/api/v1/namespaces
  • 常用的Pod相关操作。

    执行以下命令查看default命名空间下的所有Pods。

    curl --cert ./client-cert.pem --key ./client-key.pem -k $APISERVER/api/v1/namespaces/default/pods

    执行以下命令创建Pod(JSON格式)。

    cat nginx-pod.json
    {
        "apiVersion":"v1",
        "kind":"Pod",
        "metadata":{
            "name":"nginx",
            "namespace": "default"
        },
        "spec":{
            "containers":[
                {
                    "name":"nginx",
                    "image":"nginx:alpine",
                    "ports":[
                        {
                            "containerPort": 80
                        }
                    ]
                }
            ]
        }
    }
    
    curl --cert ./client-cert.pem --key ./client-key.pem -k $APISERVER/api/v1/namespaces/default/pods -X POST --header 'content-type: application/json' -d@nginx-pod.json

    执行以下命令创建Pod(YAML格式)。

    cat nginx-pod.yaml
    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
      namespace: default
    spec:
      containers:
      - name: nginx
        image: nginx:alpine
        ports:
        - containerPort: 80
    
    curl --cert ./client-cert.pem --key ./client-key.pem -k $APISERVER/api/v1/namespaces/default/pods -X POST --header 'content-type: application/yaml' --data-binary @nginx-pod.yaml

    执行以下命令查询Pod状态。

    curl --cert ./client-cert.pem --key ./client-key.pem -k $APISERVER/api/v1/namespaces/default/pods/nginx

    执行以下命令查询Pod logs。

    curl --cert ./client-cert.pem --key ./client-key.pem -k $APISERVER/api/v1/namespaces/default/pods/nginx/log

    执行以下命令查询Pod的metrics数据(通过metric-server api)。

    curl --cert ./client-cert.pem --key ./client-key.pem -k $APISERVER/apis/metrics.k8s.io/v1beta1/namespaces/default/pods/nginx

    执行以下命令删除Pod。

    curl --cert ./client-cert.pem --key ./client-key.pem -k $APISERVER/api/v1/namespaces/default/pods/nginx -X DELETE
  • 常用的Deployment相关操作。

    创建Deployment示例YAML文件如下。

    cat nginx-deploy.yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deploy
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image:  nginx:alpine
            ports:
            - containerPort: 80
            resources:
              requests:
                cpu: "2"
                memory: "4Gi"
    
    curl --cert ./client-cert.pem --key ./client-key.pem -k $APISERVER/apis/apps/v1/namespaces/default/deployments -X POST --header 'content-type: application/yaml' --data-binary @nginx-deploy.yaml

    执行以下命令查看Deployment。

    curl --cert ./client-cert.pem --key ./client-key.pem -k $APISERVER/apis/apps/v1/namespaces/default/deployments

    执行以下命令更新Deployment(修改replicas副本数量)。

    curl --cert ./client-cert.pem --key ./client-key.pem -k $APISERVER/apis/apps/v1/namespaces/default/deployments/nginx-deploy -X PATCH -H 'Content-Type: application/strategic-merge-patch+json' -d '{"spec": {"replicas": 4}}'

    执行以下命令更新Deployment(修改容器镜像)。

    curl --cert ./client-cert.pem --key ./client-key.pem -k $APISERVER/apis/apps/v1/namespaces/default/deployments/nginx-deploy -X PATCH -H 'Content-Type: application/strategic-merge-patch+json' -d '{"spec": {"template": {"spec": {"containers": [{"name": "nginx","image": "nginx:1.7.9"}]}}}}'

相关文档

  • 官方SDK

  • 其他Kubernetes集群访问方式

推荐您使用Kubernetes官方维护的SDK(包括Go、Python、Java等语言)。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/158314.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云日志服务SLS重建索引-云淘科技

    当您需要对历史数据配置索引或修改索引时,可以使用重建索引功能。日志服务支持在选定的时间段中按照最新的索引规则为Logstore重建索引。本文介绍如何在日志服务控制台上重建索引及相关信息。 前提条件 已开启索引。具体操作,请参见开启并配置索引。使用限制重建索引支持的时间段:30天~15分钟之前。最多支持创建10个重建任务。同一时间内只支持运行1个重建任务。费用…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云容器服务ACK创建无状态工作负载Deployment-云淘科技

    您可以通过镜像、编排模板及命令创建一个无状态应用。容器服务Kubernetes集群支持通过Web界面使用镜像密钥。本文以Nginx为例说明如何通过镜像、编排模板及命令来创建无状态应用。 前提条件 已创建Kubernetes集群。具体操作,请参见创建Kubernetes托管版集群。 已通过kubectl连接kubernetes集群。具体操作,请参见通过Kube…

    2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLS变更图-云淘科技

    本文介绍变更图操作步骤及案例。 简介 日志服务提供变更图,直观地展示一个任务的加载时间以及多个任务加载时间的对比。变更图使用矩形块表示某一段任务加载时间的起始值和结束值,矩形块的长度表示加载这个任务所需要的时间。一般情况下,变更图的X轴起始值为任务的起始时间,X轴结束值为任务的结束时间,Y轴为任务名。 建议不超过20个任务,避免纵向宽度过窄导致分析结果不直观…

    2023年12月10日
  • 阿里云日志服务SLS使用网络质量分析器-云淘科技

    本文介绍使用网络质量分析器的操作步骤。 步骤一:新建接入端应用 重要 一个阿里云账号下最多可创建32个端应用。如果您有更大需求,请提工单申请。 登录日志服务控制台。 在日志应用区域,单击网络质量分析器。 在页面右上角,单击接入端管理。 首次操作时,请根据系统提示,完成授权。授权完成后,系统将创建一个服务关联角色AliyunServiceRoleForIpaD…

    2023年12月10日
  • 阿里云RDS数据库设置实例参数-云淘科技

    您可以使用控制台或者API查看和修改部分参数的值,以及查询参数修改历史。 注意事项 部分参数修改后,在提交参数时会立即重启实例,详情请参见控制台上可修改参数页面中的是否重启列。重启实例会造成连接中断,重启前请做好业务安排,谨慎操作。 修改参数值时请参见控制台上可修改参数页面中的可修改参数值列。 修改参数值 访问RDS实例列表,在上方选择地域,然后单击目标实例…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。