• Kubernetes API server工作原理


    作为Kubernetes的使用者,每天用得最多的命令就是kubectl XXX了。

    kubectl其实就是一个控制台,主要提供的功能:

    1. 提供Kubernetes集群管理的REST API接口,包括认证授权、数据校验以及集群状态变更;

    2. 提供其他模块之间的数据交互和通信的枢纽(其他模块通过API Server查询或修改数据,只有API Server才直接操作etcd)

    也就是说,我们在终端里输入的每个kubectl命令,实际上都是一个发往Kubernetes API server的Restful API调用。

    我们可以做个实验:

    kubectl get secret -v=9, 通过-v=9设置最高级别的trace:

    从输出观察到为了取回所有的secret而进行的API server的调用url:https://xxxx/api/v1/namespaces//secrets?limit=500:

    这个HTTP请求的格式在Kubernetes官网能查到。

    那么kubectl命令怎么知道应该把请求发送到哪个API server呢?

    运行命令kubectl config view, 显示内容里的server:后面的地址就是API server的url。

    kubectl config view显示的内容来自配置文件: ~/.kube/config:

    其实Kubernetes的kubectl工作原理和CloudFoundry的命令行工具cf一样。

    设置操作系统的环境变量CF_TRACE = true

    然后执行任意的cf 命令,能看到这些命令实际上也是发送一个HTTP请求到SAP Cloud Platform的某个endpoint上。

    例子:cf logs connectvity-demo-approuter --recent

    然后就能看到为了完成这个命令所发送的HTTP请求和响应的负载。

    要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  • 相关阅读:
    jQuery 选择器
    pf_ring 编译移植
    Android wifi 扫描机制
    wifi 万能钥匙协议
    linux下CJson使用
    libxml -- 解析 XML 文档
    关闭浏览器复制行为
    Ubuntu 语言设置
    Socket编程之非阻塞connect
    Java多维数组
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/9998357.html
Copyright © 2020-2023  润新知