CloudFoundry命令行和Kubernetes命令行的Restful API消费方式

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 先说CloudFoundry的命令行工具CLI。我们在CloudFoundry环境下工作,第一个使用的命令就是cf login。 如果在环境变量里维护CF_TRACE的值为true: 则我们能发现,诸如cf login这种命令,实际上也是通过消费Restful API来完成的。

先说CloudFoundry的命令行工具CLI。我们在CloudFoundry环境下工作,第一个使用的命令就是cf login。

如果在环境变量里维护CF_TRACE的值为true:

则我们能发现,诸如cf login这种命令,实际上也是通过消费Restful API来完成的。

下图是cf login这个命令的api endpoint请求细节,供大家参考:

API endpoint: https://api.cf.eu10.hana.ondemand.com

REQUEST: [2018-09-21T14:50:57+08:00]

GET /v2/info HTTP/1.1

Host: api.cf.eu10.hana.ondemand.com

Accept: application/json

Content-Type: application/json

User-Agent: go-cli 6.36.1+e3799ad7e.2018-04-04 / windows

RESPONSE: [2018-09-21T14:50:59+08:00]

HTTP/1.1 200 OK

Connection: close

Content-Length: 550

Content-Type: application/json;charset=utf-8

Date: Fri, 21 Sep 2018 06:50:58 GMT

Server: nginx

X-Content-Type-Options: nosniff

X-Vcap-Request-Id: abf32f52-294a-41f5-5919-be948d78f0dd::a32b17bb-da82-4d45-930f-f0344c8a83b3

{"name":"","build":"","support":"","version":0,"description":"Cloud Foundry at SAP Cloud Platform","authorization_endpoint":"https://login.cf.eu10.hana.ondemand.com","token_endpoint":"[PRIVATE DATA HIDDEN]","min_cli_version":null,"min_recommended_cli_version":null,"api_version":"2.115.0","app_ssh_endpoint":"ssh.cf.eu10.hana.ondemand.com:2222","app_ssh_host_key_fingerprint":"f3:12:47:b5:3a:19:6e:6c:4e:9d:90:2e:6f:8e:87:cc","app_ssh_oauth_client":"ssh-proxy","doppler_logging_endpoint":"wss://doppler.cf.eu10.hana.ondemand.com:443"}

REQUEST: [2018-09-21T14:50:59+08:00]

GET /login HTTP/1.1

Host: login.cf.eu10.hana.ondemand.com

Accept: application/json

Content-Type: application/json

User-Agent: go-cli 6.36.1+e3799ad7e.2018-04-04 / windows

API响应结果:

RESPONSE: [2018-09-21T14:51:00+08:00]

HTTP/1.1 200 OK

Connection: close

Content-Length: 551

Cache-Control: no-store

Content-Language: en-US

Content-Type: application/json;charset=UTF-8

Date: Fri, 21 Sep 2018 06:50:59 GMT

Set-Cookie: X-Uaa-Csrf=8uoxBvyG8QCwo29efrrZNh; Max-Age=86400; Expires=Sat, 22-Sep-2018 06:51:00 GMT; Path=/; Secure; HttpOnly

Strict-Transport-Security: max-age=31536000 ; includeSubDomains

X-Content-Type-Options: nosniff

X-Frame-Options: DENY

X-Vcap-Request-Id: f6b29d8f-f78e-4c5e-61f3-5c9d906828ed

X-Xss-Protection: 1; mode=block

{"app":{"version":"4.19.0"},"links":{"uaa":"https://uaa.cf.eu10.hana.ondemand.com","passwd":"https://accounts.sap.com/ui/createForgottenPasswordMail?spName=cf.eu10.hana.ondemand.com","login":"https://login.cf.eu10.hana.ondemand.com","register":"https://accounts.sap.com/ui/public/showRegisterForm?spName=cf.eu10.hana.ondemand.com"},"zone_name":"uaa","entityID":"login.cf.eu10.hana.ondemand.com","commit_id":"7897100","idpDefinitions":{},"prompts":{"username":["text","Email"],"password":["password","Password"]},"timestamp":"2018-06-13T12:02:09-0700"}

Email>

再看Kubernetes。我们用的很多的命令:

kubectl get pods,返回pods列表。

CloudFoundry命令行和Kubernetes命令行的Restful API消费方式

而用命令行

kubectl --v=8 get pods

则发现,get pods这个命令实际上也是发请求发往Kubernetes的API server:

https://:6443/api/v1/namespaces/default/pods?limit=500

API请求明细如下:

API server是Kubernetes最重要的核心组件之一:

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

2. 提供其他模块之间的数据交互和通信的枢纽(其他模块通过API Server查询或修改

数据,只有API Server才直接操作etcd)

kube-apiserver支持同时提供https(默认监听在6443端口)和http API(默认监听在

127.0.0.1的8080端口),其中http API是非安全接口,不做任何认证授权机制,不建议

生产环境启用。两个接口提供的REST API格式相同,参考Kubernetes API Reference查

看所有API的调用格式。

在实际使用中,通常通过kubectl来访问apiserver,也可以通过Kubernetes各个语言的

client库来访问apiserver。

比如上面get pods命令对应的API的文档:

https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/#list-62

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
4天前
|
缓存 弹性计算 API
用 Go 快速开发一个 RESTful API 服务
用 Go 快速开发一个 RESTful API 服务
|
3天前
|
XML 存储 缓存
|
3天前
|
NoSQL JavaScript API
深入浅出:从零构建RESTful API
本文将带你踏上一场后端开发的奇幻旅程,我们将一起揭开RESTful API的神秘面纱。无论你是初学者还是有一定经验的开发者,这篇文章都会为你提供宝贵的知识。我们将从基础概念出发,逐步深入到实战操作,最终实现一个功能完备的RESTful API。在这个过程中,你将学会如何设计API、处理数据和响应请求。准备好了吗?让我们开始吧!
|
3天前
|
SQL 安全 API
数字堡垒之下:网络安全漏洞、加密技术与安全意识的博弈探索RESTful API设计的最佳实践
【8月更文挑战第27天】在数字化浪潮中,网络安全成为守护个人隐私与企业资产的关键防线。本文深入探讨了网络漏洞的成因与影响,分析了加密技术如何为数据保驾护航,并强调了提升公众的安全意识对于构建坚固的信息防御系统的重要性。文章旨在为读者提供一场思维的盛宴,启发更多关于如何在日益复杂的网络世界中保护自己的思考。
|
2天前
|
缓存 API 网络架构
构建高效RESTful API的实用指南
【8月更文挑战第29天】在数字时代的浪潮中,API(应用程序编程接口)已成为连接不同软件和服务的桥梁。本文将引导你理解RESTful API的核心概念,探索设计原则,并通过实际代码示例,展示如何实现一个高效的RESTful API。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的指导和启示。
|
2天前
|
前端开发 API 网络架构
深入理解后端开发中的RESTful API设计
【8月更文挑战第29天】在数字化时代,后端开发是构建强大、高效软件系统不可或缺的一环。RESTful API作为后端与前端交互的桥梁,其设计直接影响到应用程序的性能和用户体验。本文将深入浅出地探讨如何设计符合REST原则的API,并通过实际代码示例来展示最佳实践。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧,帮助你提升后端开发技能。
|
2天前
|
存储 设计模式 API
深入浅出后端开发:从零到一构建RESTful API
【8月更文挑战第29天】本文旨在引导读者理解后端开发的精髓,并通过实际代码示例,展示如何从无到有构建一个RESTful API。文章首先解释后端开发的基本概念,然后逐步深入到API设计的原则和最佳实践,最后通过一个具体的代码示例,让读者能够动手实践,体验后端开发的乐趣。
|
1天前
|
JavaScript 前端开发 中间件
深入浅出Node.js: 从零开始构建RESTful API
【8月更文挑战第30天】本文是一篇针对初学者的Node.js教程,旨在引导读者通过实践学习如何利用Node.js和Express框架快速搭建一个RESTful API。文章将介绍Node.js的基本概念、环境配置、以及如何使用Express框架创建API端点。此外,我们还将探讨如何进行数据操作和错误处理,最终实现一个简单的待办事项管理系统API。通过本教程的学习,读者将能够掌握构建RESTful API的基础技能,并了解如何将其应用于实际项目开发中。
|
2天前
|
缓存 API 网络架构
深入浅出:RESTful API设计原则与实践
【8月更文挑战第29天】本文旨在为读者揭示如何通过遵循一系列设计原则来创建高效、可维护和易于理解的RESTful API。我们将探讨REST架构的核心概念,并通过实际代码示例展示如何将这些原则应用于日常开发中。无论你是新手还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧,帮助你构建更好的后端服务。
|
3天前
|
前端开发 安全 API
深入理解后端开发中的RESTful API设计
【8月更文挑战第29天】在数字化时代的浪潮中,后端开发作为技术大厦的坚实基础,承载着数据与服务的核心交互。本文将深入浅出地探讨RESTful API设计的核心原则和实践技巧,通过生动的案例分析,揭示如何构建高效、可扩展且易于维护的后端服务接口。无论你是初探后端世界的新手,还是寻求进阶的开发者,这篇文章都将为你打开一扇通往高质量API设计的大门。

推荐镜像

更多
下一篇
云函数