调用Kubernetes API操作Kubernetes
准备工作
首先要准备一个1.5+版本的Kubernetes,并且开放了API Server的http访问端口8080。本文使用的是1.10的版本,没有环境的可以参考我上一篇文章《在CentOS 7+ 安装Kubernetes入门(单Master)》进行安装。
使用http://master-ip:8080/apis检查API是否能正常访问,这里的master-ip是192.168.132.132。
如果地址无法访问,需要设置Kubernetes开通http访问端口8080。
1. 在Master中进入API Server的启动脚本目录:
cd /etc/kubernetes/manifests/
2. 修改API Server的脚本文件:kube-apiserver.yaml或者kube-apiserver.json。
添加或设置--insecure-bind-address=0.0.0.0、--insecure-port=8080。如下:
重启kubelet:
systemctl daemon-reload
systemctl restart kubelet
3. 打开Swagger(可选)
在kube-apiserver.yaml或者kube-apiserver.json中添加--enable-swagger-ui=true,重启kubelet,然后使用http://master-ip:8080/swagger-ui/进行访问:
更多设置参数请参考:
https://kubernetes.io/docs/reference/generated/kube-apiserver/
创建应用
1. 创建deloyment
nginx-dep.json:
{
"apiVersion": "extensions/v1beta1",
"kind": "Deployment",
"metadata": {
"name": "nginx",
"labels": {
"app": "nginx"
},
"namespace": "default"
},
"spec": {
"replicas": 1,
"template": {
"metadata": {
"labels": {
"app": "nginx"
}
},
"spec": {
"nodeSelector": {
"kubernetes.io/role": "node"
},
"containers": [
{
"name": "nginx",
"image": "nginx:1.13",
"ports": [
{
"containerPort": 80
}
]
}
]
}
}
}
}
API:POST http://master-ip:8080/apis/extensions/v1beta1/namespaces/{namespace}/deployments:
kubectl get deployment进行检查:
2. 创建service
nginx-svc.json:
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "nginx",
"labels": {
"app": "nginx"
},
"namespace": "default"
},
"spec": {
"selector": {
"app": "nginx"
},
"type": "NodePort",
"ports": [
{
"name": "nginx",
"nodePort": 30000,
"port": 80,
"protocol": "TCP",
"targetPort": 80
}
]
}
}
API:POST http://master-ip:8080/api/v1/namespaces/{namespace}/services:
kubectl get service进行检查:
使用Node1的地址http://192.168.132.130:30000/进行访问:
补充说明
Kubernetes高版本其实更建议使用https的协议来操作API Server,即https://master-ip:6443/,而且默认是开放的:
但是https的认证与授权当前我还没有弄清楚,因此,没有写在这篇文章,或许后续会补上。不过,Kubernetes推出了Helm,用Helm可以更方便地操作Kubernetes,我后续会介绍如何使用Helm。
调用Kubernetes API操作Kubernetes的更多相关文章
- 【Azure API 管理】解决调用REST API操作APIM(API Management)需要认证问题(Authentication failed, The 'Authorization' header is missing)
问题描述 在通过REST API的方式来管理APIM资源,需要调用Azure提供的management接口.而这所有的接口,都是需要有Token并且还需要正确的Token.如若不然,就会获取到如下的错 ...
- C# 调用windows api 操作鼠标、键盘、窗体合集...更新中
鼠标操作window窗体合集...更新中 1.根据句柄查找窗体 引自http://www.2cto.com/kf/201410/343342.html 使用SPY++工具获取窗体 首先打开spy+ ...
- C#调用win32 api 操作其它窗口
实现以下功能: 找到窗体 找到控件(也叫子窗体) 获取内容 获取位置 设置 位置 内容 鼠标点击 示范 1. 找窗体 以操作系统自带的计算器为例 string clWindow = "Cal ...
- kubernetes API Server 权限管理实践
API Server权限控制方式介绍 API Server权限控制分为三种:Authentication(身份认证).Authorization(授权).AdmissionControl(准入控制). ...
- Kubernetes API server工作原理
作为Kubernetes的使用者,每天用得最多的命令就是kubectl XXX了. kubectl其实就是一个控制台,主要提供的功能: 1. 提供Kubernetes集群管理的REST API接口,包 ...
- 资深专家深度剖析Kubernetes API Server第3章(共3章)
在本系列的前两部分中我们介绍了API Server的总体流程,以及API对象如何存储到etcd中.在本文中我们将探讨如何扩展API资源. 在一开始的时候,扩展API资源的唯一方法是扩展相关API源代码 ...
- 深度剖析Kubernetes API Server三部曲 - part 3
在本系列的前两部分中我们介绍了API Server的总体流程,以及API对象如何存储到etcd中.在本文中我们将探讨如何扩展API资源. 在一开始的时候,扩展API资源的唯一方法是扩展相关API源代码 ...
- 第23 章 : Kubernetes API 编程范式
Kubernetes API 编程范式 需求来源 首先我们先来看一下 API 编程范式的需求来源. 在 Kubernetes 里面, API 编程范式也就是 Custom Resources Defi ...
- Kubernetes API作为权威接口,Kubernetes将成为软件的通用控制平面
1创新之处在于API这是有关 Kubernetes的两部分系列中的第一篇.第一部分是一个答案:影响Kubernetes设计的关键思想是什么?Kubernetes会将它与其他平台区分开来吗?第二部分是关 ...
随机推荐
- 安装Keras
在cmd窗口运行代码: pip install keras -U --pre 安装Keras: 进入Python环境,运行import keras,检验是否成功安装.
- python提示import XX 不存在,如何排查错误
1.如何确定文件夹是一个包, 检查包中是否有__init__.py 文件, 在python模块的每一个包中,都有一个__init__.py文件(这个文件定义了包的属性和方法)然后是一些模块文件和子目录 ...
- echarts地图的引用
最近是跟echarts杠上了 所在公司是搞数据的 所以身为前端的我 就必须使用echarts将数据展示出来 ,进公司一周 ,前前后后大概用了八九种echarts图,我举得最难的就是引用的地图,因为刚开 ...
- 深入理解Java对象的创建过程:类的初始化与实例化
摘要: 在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的.在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类 ...
- [BZOJ 3813]奇数国
3813: 奇数国 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 736 Solved: 416[Submit][Status][Discuss] ...
- 删除日志释放空间最好不要用rm
目前在维护一些服务器有一个根目录空间经常告警no space left ,切到/var/log 目录下du -sh * 的时候,发现有一个authlog占了12G,然后立马执行了rm authlog: ...
- GNU/Hurd笔记整理
patch 0 关于文件锁支持的解决方案,大部分是由Neal Walfield在2001年完成的.这些补丁由Marcus Brinkmann发表,随后被Michael Banck于2002年修改了部分 ...
- ES6常用新特性
https://segmentfault.com/a/1190000011976770?share_user=1030000010776722 该文章为转载文章!仅个人喜好收藏文章! 1.前言 前几天 ...
- OO第一次作业总结
OO第一次学习总结 1.第一次作业:多项式加法 从未接触过java的我,在从输入输出开始学了几天后,按照C语言的思路,写出了一个与面向过程极其接近的程序. 在这个程序中,存在两个类:一个是Comput ...
- 【bug清除】Surface Pro系列使用Drawboard PDF出现手写偏移、卡顿、延迟现象的解决方式
最近自己新买的New Surface Pro在使用Drawboard PDF时,出现了性能问题,即笔迹延迟偏移,卡顿的问题. 排查驱动问题之后,确认解决方案如下: 将Surface的电池调到性能模式, ...