日常使用的服务部署在容器
中,容器运行在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