k8s学习 - API
k8s学习 - API
之前对k8s并没有很深入的了解,最近想把手头一个项目全部放到k8s上,以方便部署,需要研究。这里记录一下自己研究过程中头脑中的理解。
k8s 和 docker
首先,需要先理解下docker。镜像把你要的应用和环境打包在一个容器里面,有了容器之后,部署,扩容等操作就很方便了。但是,随着微服务化,服务一多,容器就多了,多了之后,就需要对容器进行管理。需要有一套很完善的管理系统。那么 k8s 就出现了。
k8s 全称就是kubernets,和 i10n 的名字类似,中间的数字就是英文单词的数字。它的官网是k8s官网。
在 k8s 机器上同时应该安装docker-server,因为k8s的基础是docker镜像,这些镜像需要通过docker-server来从远端获取和实例化。
k8s 就是一个分布式系统,你可以在一台机器上安装k8s集群,也可以在多台机器上安装k8s 集群。它是master-node形式的有一个k8s节点充当master,其他k8s节点充当node。这整个分布式系统,就相当于一个服务集群。我们可以在这个集群上启动多个服务,每个服务都有自己的虚拟IP,虚拟端口,各个服务可以通过这些IP和端口进行交互,最终由一个出口IP和出口端口对外提供服务。
k8s API
k8s是分布式系统,它本身有各个组件,各个组件之间的通信,对外提供的都是rest接口的http服务。这些接口就统称为 k8s API。k8s的api也很有特点,首先它是分组的,它有很多api组。这些api组都有不同的功能,有的api组负责权限,有的api组负责存储。
每个api组还有版本的区分,它其实也有大小版本区分,但是不是我们常用的1.1.1这种版本号,k8s api 大的版本都是以v1, v2 这种为迭代的,每个大的版本里面区别三个等级,一种是Alpha等级,这个等级就是还在调试的,基本我们不作为开发者的话,这种等级的接口版本不会接触到。它会在大版本后面直接跟着alpha,比如v1alpha2, 就代表是v1大版本的alpha等级第2小版本。第二个等级就是Beta等级,这个等级说明接口基本可以使用了,也经过完整测试了。会比正常的稳定版本有更多的功能。它的版本格式如v1beta2。第三个等级就是Stable版本,这个等级说明这个是个稳定版,可以放心使用。
所以,我们通过 kubectl api-versions
可以看到很多api组和版本号:
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1
apps/v1beta1
apps/v1beta2
authentication.k8s.io/v1
authentication.k8s.io/v1beta1
authorization.k8s.io/v1
authorization.k8s.io/v1beta1
autoscaling/v1
autoscaling/v2beta1
batch/v1
batch/v1beta1
certificates.k8s.io/v1beta1
compose.docker.com/v1beta1
compose.docker.com/v1beta2
events.k8s.io/v1beta1
extensions/v1beta1
networking.k8s.io/v1
policy/v1beta1
rbac.authorization.k8s.io/v1
rbac.authorization.k8s.io/v1beta1
storage.k8s.io/v1
storage.k8s.io/v1beta1
v1
比如 authorization.k8s.io/v1beta1
就代表authorization.k8s.io这个api组的v1大版本下的beta等级1小版本。
我们后续在yaml中写的apiVerison就是这个版本意思。
那这些版本的api怎么调用呢?官方使用swagger对接口进行管理和说明,首先我们可以启动kubectl proxy
来启动k8s server的http代理。默认打开地址是http://127.0.0.1:8001/
。使用http://127.0.0.1:8001/swagger.json
就可以看到k8s的全部api说明了。如果你有swagger-editor的话,你还可以把这个json放到editor里面,就能看到所有的接口了。(接口特别多,加载比较慢)
。
现在有了k8s接口,我们完全可以自己写一个客户端来调用。客户端库。但是我们最常用的客户端命令是kubectl。
k8s学习 - API的更多相关文章
- ASP.NET Core on K8S学习初探(3)部署API到K8S
在上一篇<基本概念快速一览>中,我们把基本的一些概念快速地简单地不求甚解地过了一下,本篇开始我们会将ASP.NET Core WebAPI部署到K8S,从而结束初探的旅程. Section ...
- ASP.NET Core on K8S学习之旅(13)Ocelot API网关接入
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 上一篇介绍了Ingress的基本概念和Nginx Ingress的基本配置和使 ...
- ASP.NET Core on K8S学习初探(1)K8S单节点环境搭建
当近期的一个App上线后,发现目前的docker实例(应用服务BFF+中台服务+工具服务)已经很多了,而我司目前没有专业的运维人员,发现运维的成本逐渐开始上来,所以容器编排也就需要提上议程.因此我决定 ...
- ASP.NET Core on K8S学习初探(2)K8S基本概念快速一览
在上一篇<单节点环境搭建>中,通过Docker for Windows在Windows开发机中搭建了一个单节点的K8S环境,接下来就是动人心弦的部署ASP.NET Core API到K8S ...
- k8s学习 - 概念 - master/node
k8s学习 - 概念 - master/node 在k8s中,有各种各样的概念和术语.这些概念是必须要学习和掌握的.我们先罗列下所有概念,然后再一个个看具体实例. 大概说一下这些概念: Master: ...
- k8s学习 - 概念 - Pod
k8s学习 - 概念 - Pod 这篇继续看概念,主要是 Pod 这个概念,这个概念非常重要,是 k8s 集群的最小单位. 怎么才算是理解好 pod 了呢,基本上把 pod 的所有 describe ...
- ASP.NET Core on K8S学习之旅(12)Ingress
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.关于Ingress Kubernetes对外暴露Service主要有三种方 ...
- ASP.NET Core on K8S学习之旅(14)Ingress灰度发布
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 之前一篇介绍了Ingress的基本概念和Nginx Ingress的基本配置和 ...
- k8s监控api调用
k8s监控api调用 curl -s --cacert /etc/kubernetes/ssl/ca.pem -basic -u fengjian:fengjian --insecure -X GET ...
随机推荐
- multi-node和generic-pool两大利器
1.multi-node node只能单进程,单cpu工作,而multi-node则可以让node在多进程下共享内存的工作,实现机制是依靠child_process的sendmsg做到的.想要了解具体 ...
- Ajax请求小结
参数说明 ajax请求异步刷新页面=把需要异步刷新的页面单独写成一个.cshtml进行操作$.ajax({}); -------ajax方法.type: ------- 类型,此处为“POST” 还有 ...
- dotnet pack 打包文件版本号引起 "Could not load file or assembly" 问题
如果不是遇到,真的不会想到,代码世界的问题真是千奇百怪,这次遇到的是 dotnet pack 打包文件版本号引起的问题. 之前进行 nuget 打包都是在 Visual Studio build 时进 ...
- StepShot4.3.0安装包_KeyGen发布
StepShot是一个可以方便快速的制作操作手册的软件,功能相当强悍. 请低调使用. -------------------------------华丽的分割线-------------------- ...
- iText类库再pdf中显示中文字体
using iTextSharp.text; using System; using System.Collections.Generic; using System.IO; using System ...
- 算法之--回溯法-迷宫问题【python实现】
题目描述 定义一个二维数组N*M(其中2<=N<=10;2<=M<=10),如5 × 5数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, ...
- [VS]VS2017 安装ReportDesigner/ReportViewer的方法
原文:[VS]VS2017 安装ReportDesigner/ReportViewer的方法 解决安装完VS2017后,无法用ReportDesigner/ReportViewer打开.rdlc文件V ...
- Docker笔记03-docker 网络模式
docker网络模式分为5种 Nat (Network Address Translation) Host other container none overlay 第一种 Nat模式 docker的 ...
- 逻辑回归模型(Logistic Regression)及Python实现
逻辑回归模型(Logistic Regression)及Python实现 http://www.cnblogs.com/sumai 1.模型 在分类问题中,比如判断邮件是否为垃圾邮件,判断肿瘤是否为阳 ...
- 使用dumpbin命令查看dll导出函数及重定向输出到文件(VS自带)
以前查看dll导出函数,一般使用Viewdll等第三方工具.但由于Viewdll采用dephi编写,因此仅能查看32位的dll.其实微软已经帮我们提供一个查看dll导出函数的命令,嵌在VS开发环境中, ...