zoukankan      html  css  js  c++  java
  • 访问kubernetes api

    kubernetes api介绍

    作用: 将各种资源对象的数据都通过该api接口被提交到后端的持久化存储etcd中;
    一个api的顶层元素由kind丶apiVersion丶metadata丶spec和status这5部分组成
    1.kind

     有三大类别: 对象(object)丶列表(list)丶简单类别(simple)
    

    2.apiVersion

    表示API的版本号, 当前版本默认只支持v1
    

    3.metadata : 资源对象的元数据定义,

    在kubernetes中的每个资源对象都必须包含3中Metadata
    namespace: 对象所属的命名空间
    name: 对象的名称
    uid: 系统为每个对象都生成的唯一id
    其它重要的元数据
    
    labels: 标签
    annotations: 用户可定义的注解
    resourceVersion:  用于识别资源内部版本号的字符串
    creationTimestamp: 系统记录创建对象时的时间戳
    deletionTimestamp: 系统记录删除对象时的时间戳
    selfLink: 通过api访问资源自身的URL 
    

    4.spec: 用户对需要管理的对象进行详细描述的主体部分都在spec, 他会被kubernetes持久化到etcd中保存, 系统通过spec的描述来创建或更新对象, 以达到用户期望的对象运行状态
    5.status: 用于记录对象在系统中的当前状态信息

    访问api

    1.本地监听

    kubectl proxy
    curl http://127.0.0.1:8001/api 
    


    2.网络监听

    kubectl proxy --address='192.168.1.52'  --accept-hosts='^*$' --port=8001 
    启动kubectl proxy,使用网卡IP,从其他机器访问, --accept-hosts='^*$' 表示接受所有源IP,否则会显示不被授权
    curl  http://192.168.1.52:8001/api/
    

    3.直接访问

    kubectl create sa test
    kubectl create clusterrolebinding sa-test-cluster-admin --clusterrole='cluster-admin' --serviceaccount=default:test
    TOKEN=$(kubectl get secrets -o jsonpath="{.items[?(@.metadata.annotations['kubernetes.io/service-account.name']=='test')].data.token}"|base64 -d)
    curl --header "Authorization: Bearer $TOKEN" --insecure  -X GET https://192.168.1.52:6443/api/v1/nodes
    

    4.通过postman访问

    注意: 使用sa需要关闭ssl验证

    参考文档: https://www.jianshu.com/p/0a5976ce1ce4

  • 相关阅读:
    redis问题排查
    javassist介绍
    Idea创建父子工程
    sentry的配置
    Redis的基本操作以及info命令
    es~日期类型需要注意的
    jboss~静态文件路由和自定义日志
    java~RMI引起的log4j漏洞
    链路跟踪~对接阿里ARMS
    navicat~导出数据库密码
  • 原文地址:https://www.cnblogs.com/lovelinux199075/p/11276528.html
Copyright © 2011-2022 走看看