k8s学习第17天

PROXY API

kubernetes API Server 最主要的 REST 接口是对资源对象执行 CRUD 操作的接口,但是它还有一类很特殊的 REST 接口 -- Kubernetes Proxy API 接口,这类接口的作用是代理 REST 请求,即 kubernetes API Server 把收到的 REST 请求转发到某个 Node 节点上的 kubelet 守护进程的 REST 端口,由该 kubelet 进程负责响应

Node接口

与 Node 相关接口的 REST 路径为/api/v1/nodes/{name}/proxy,其中 {name} 是节点的名称或是 IP 地址

//列出结点内所有的pod的信息
curl http://localhost:8078/api/v1/nodes/scms01/proxy/pods
//列出指定结点内物理资源的统计信息
curl http://localhost:8078/api/v1/nodes/scms01/proxy/stats
<a href="/stats/">Moved Permanently</a>.

//没有资源,稍等看下
[root@scms01 system]# curl http://localhost:8078/api/v1/nodes/scms01/proxy/stats/
404: Page Not Found[root@scms01 system]# 

//获取指定节点的概要信息
curl http://localhost:8078/api/v1/nodes/scms01/proxy/spec
404 page not found
 //列出指定节点的各类日志信息
/api/v1/nodes/{name}/proxy/logs  
//列出指定节点的 Metrics 信息
/api/v1/nodes/{name}/proxy/metrics 


//列出结点上运行的pod
curl http://localhost:8078/api/v1/nodes/scms01/proxy/runningpods/
//列出结点上当前web服务的状态
curl http://localhost:8078/api/v1/nodes/scms01/proxy/debug/pprof

下面的命令 要加具体的参数才能运行
/api/v1/nodes/{name}/proxy/run
/api/v1/nodes/{name}/proxy/exec
/api/v1/nodes/{name}/proxy/attch

 Pod接口

通过 Pod proxy 接口,我们可以访问 Pod 里面某个容器提供的服务。通常与 Pod 相关接口的 REST 路径为:

/api/v1/namespaces/{namespace}/pods/{name}/proxy  # 访问 Pod
/api/v1/namespaces/{namespace}/pods/{name}/proxy/{path:*}  # 访问 Pod 服务的 URL 路径

下面示例:

//通过get pods 获取pod的名称
[root@scms01 system]# kubectl get pods -o wide 

//获取该pod的详细信息
curl http://localhost:8078/api/v1/namespaces/default/pods/webapp-5759bc56f7-pc75d

 如果后面再加一层/proxy/,就可以和直接访问接口一样

[root@scms01 system]# curl http://localhost:8078/api/v1/namespaces/default/pods/webapp-5759bc56f7-pc75d/proxy/



<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8"/>
        <title>Apache Tomcat/8.0.35</title>
        <link href="favicon.ico" rel="icon" type="image/x-icon"/>
        <link href="favicon.ico" rel="shortcut icon" type="image/x-icon"/>
        <link href="tomcat.css" rel="stylesheet" type="text/css"/>
    </head>

    <body>
        <div id="wrapper">
            <div id="navigation" class="curved con

看到这里,你可能已经知道proxy接口的意义了:在k8s集群之外访问某个pod容器服务时,就可用proxy api 实现,用于管理目的,比如逐一排查service的pod副本,检测pod服务是否存在异常。

Service接口

service和pod的用法一样,不再赘述

补充:也可以通过kubect命令请求 加上 --raw参数 后面加上uri就行了,效果和curl的一样,在写shell脚本请求的时候比较有用,返回的也是json数据

kubectl get --raw /api/v1/namespaces/default/pods/webapp-5759bc56f7-pc75d/proxy


kubectl get --raw /api/v1/nodes


kubectl get --raw /api/v1/namespaces

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值