日常使用的服务部署在容器中,容器运行在pod中,pod运行在node上
graph BT
subgraph node1
pod1
pod2
end
subgraph node2
pod3
pod4
end
subgraph node3
pod5
pod6
end
基操
查看k8s的版本
1 | $ kubectl version |
查看所有节点信息(node)
1 | $ kubectl get node -n <namespace> |
如果想查看更多信息。可以添加参数
-o wide
查看服务(svc)
1 | $ kubectl get svc |
如果想查看更多信息。可以添加参数
-o wide默认查看当前namespace的服务。如果需要查看指定namespace的服务,添加参数
-n <name_space>如果想要查看所有namespace全部服务,则添加参数
-A
查看pod
1 | $ kubectl get pod -n <namespace> |
如果想查看更多信息。可以使用
kubectl get pod -o wide默认查看当前namespace的pod。如果需要查看指定namespace的服务,添加参数
-n <name_space>如果想要查看所有namespace全部pod,则添加参数
-A
查看pod日志
1 | $ kubectl logs -f <pod_name> --tail -10 |
参数
-f表示持续跟踪
--tail -10表示看最后10行
查看资源的描述信息
1 | $ kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | -l label] | TYPE/NAM) |
-f, –filename=[]: ⽤来指定待描述资源的⽂件名,⽬录名或者URL。 -l, –selector=””: ⽤于过滤资源的Label。
查看node的描述信息:
kubectl describe node <node_name>查看service的描述信息:
kubectl describe svc <service_name>查看pod的描述信息:
kubectl describe pod <pod_name>查看所有pod的描述信息:
kubectl describe pods查看资源使用情况
1
2
3
4
5# 查看node的资源使用情况
$ kubectl top node
# 查看pod的资源使用情况
$ kubectl top pod
进入到pod里边
1 | $ kubectl exec -it pod/<pod_name> -n <namespace> -- bash |
pod执行指令
1 | $ kubectl exec -it pod/<pod_name> -n <namespace> -- <cmd_line> |
让pod执行指令,跟上边进入pod是一回事,bash的意思是进入命令行。执行别的指令,执行完就会退出pod,不会持续等待下一条指令
部署
graph TB
A[制作镜像] --> B[镜像上传到镜像仓库];
B --> C[编写k8s部署的yaml文件];
C --> D[通过kubectl apply部署];
D --> E(部署完成);
部署前端服务
方案
nginx + 静态文件 ==> docker镜像
镜像上传到镜像仓库
编写yaml文件
kubectl 部署 service
部署后台服务
k8s部署微服务
方案
Java环境 + 程序包 ==> docker镜像
镜像上传到镜像仓库
编写yaml文件
kubectl 部署 service