调用Kubernetes API操作Kubernetes
準備工作
首先要準備一個1.5+版本的Kubernetes,并且開放了API Server的http訪問端口8080。本文使用的是1.10的版本,沒有環(huán)境的可以參考我上一篇文章《在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/進行訪問:
更多設置參數(shù)請參考:
https://kubernetes.io/docs/reference/generated/kube-apiserver/
創(chuàng)建應用
1. 創(chuàng)建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. 創(chuàng)建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的協(xié)議來操作API Server,即https://master-ip:6443/,而且默認是開放的:
但是https的認證與授權(quán)當前我還沒有弄清楚,因此,沒有寫在這篇文章,或許后續(xù)會補上。不過,Kubernetes推出了Helm,用Helm可以更方便地操作Kubernetes,我后續(xù)會介紹如何使用Helm。
總結(jié)
以上是生活随笔為你收集整理的调用Kubernetes API操作Kubernetes的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国菜刀"连接被重置"
- 下一篇: 高通骁龙8+进步巨大 realme徐起: