调用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会将它与其他平台区分开来吗?第二部分是关 ...
随机推荐
- 希尔排序(shell‘ sort)
希尔排序是1959 年由D.L.Shell 提出来的,相对直接排序有较大的改进.希尔排序又叫缩小增量排序 基本思想: 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录 ...
- [jdoj1817]Drainage Ditches_网络流
Drainage Ditches jdoj-1817 题目大意:网络流裸求最大流 注释:n(点数),m(边数)<=200. 想法:裸的网络流求最大流,用bfs+dfs,美其名曰dinic. 没有 ...
- java日期格式大全 format SimpleDateFormat
http://www.cnblogs.com/loveyakamoz/archive/2011/08/18/2145047.html
- 集合源码(一)之hashMap、ArrayList
HashMap 一.HashMap基本概念: HashMap是基于哈希表的Map接口的实现.此实现提供所有可选的映射操作,并允许使用null值和null键.此类不保证映射的顺序,特别是它不保证该顺序恒 ...
- Windows下Apache的下载安装启动停止
一:下载 打开任意浏览器,输入网址:http://httpd.apache.org/ 进入如下界面: 我们选择最新版Apache httpd 2.4.12Released,点击Download,进入如 ...
- C语言第一次博客作业—输入输出
一.PTA实验作业 题目1:7-3 温度转换 本题要求编写程序,计算华氏温度150°F对应的摄氏温度.计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型. 1 ...
- C语言第二次博客作业——分支结构
一.PTA实验作业 题目1:计算分段函数 1.实验代码 #include<stdio.h> #include<math.h> int main(void) { double x ...
- 第五次作业-需求&原型改进
需求&原型改进 0. 团队介绍 团队名称:121ComeOn 项目名称:个人博客项目 团队组成: PM:黄金筱(107) 成员:王枫(031),刘烨(255),周明浩(277) github地 ...
- Alpha阶段小结
1 团队的源码仓库地址 https://github.com/WHUSE2017/MyGod 2 Alpha过程回顾 2.1 团队项目预期 有一个可视化的安卓APP,实现二手交易基本功能.预期的典型用 ...
- 项目Beta冲刺预热
Beta准备 1. 讨论组长是否重选的议题和结论. 经过讨论,我们认为,经过一段时间的磨合,现任组长是不需要更换的. 2. 下一阶段需要改进完善的功能. 增加关于征信的功能,贴近选题主题 美化界面,尽 ...