经过前面的4篇文章, kubernetes 集群已经部署好了,下面通过一些命令,了解一下对 kubernetes 的操作。
1. 创建 nginx 的 pod: kubectl run nginx --image=nginx --replicas=3
2. 查看 pod: kubectl get pod
3. 删除一个 pod: kubectl delete nginx-7cdbd8cdc9-5dxlc
删除后查看,发现还是3个,这是因为上面指定了 3 个副本,所以 kubenetes 会一直保证有 3 个。删掉一个时,会自动再建一个。
4. 想要彻底删除,可以运行: kubectl delete deployment nginx
5. 重新创建 pod 后,状态一直是 ContainerCreating,使用下面的命令查看:
kubectl describe pod nginx
发现下面这一段
这个地址是在前面 kubelet.conf 文件中配置,看的教程上说,默认是使用 gcr.io/google_containers/pause-amd64:3.0, 如果不配这个的话,会拉不到镜像。可是我配了这个地址,还是拉不到。可以通过以下方法解决(在 Node 上运行):
6. 把 Pod 中 nginx 的端口暴露出来
kubectl expose deployment nginx --port=88 --target-port=80 --type=NodePort
7. 查看生成的服务: kubectl get services
8. 删除 service: kubectl delete service nginx
9. 给一个 node 打标签: kubectl label node k8s-node1 disktype=ssd (注:这里的k8s-node1 是某个 node 的名称)
查看node 的label: kubectl get node --show-labels
给 node 打上标签后,就可以指定 Pod 部署到具有某个标签的 node 上。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2
template:
metadata:
labels:
app: web-nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
nodeSelector:
disktype: ssd
删除标签: kubectl label node k8s-node1 disktype- (注: - 就是删除的意思)
10. 查看有哪些 api-version: kubectl api-versions