pod概念,部署pod应用
-
pod概念,部署pod应用
一:kubectl工具的使用
kubectl 是操作k8s的命令行工具,能连接到apiserver上实现k8s中各种资源的增删改查。
kubectl --help 查看kubectl的帮助命令,有哪些参数,常用的如下:
get:列举资源信息,如pod,service,deployment等
kubectl get pods
kubectl get deployment
kubectl get service
describe:列举资源的详细信息
logs:查看pod输出的日志信息
edit:编辑服务器上定义的资源
delete:删除指定的资源
exec:可以交互式的登录到pod中的容器
apply:对资源做配置
explain:显示资源文档信息,可以查看某个资源的具体用法
run:运行一个pod实例如:kubectl run nginx --image=nginx 可以创建一个nginx应用(也就是创建一个pod,这块没太明白。此条命令表示控制器名字叫Nginx、pod的名字是控制器名字+一串随机数字)
实际创建pod应用都是通过编写资源清单文件进行创建1、默认的空间下,是没有任何东西的。需要指定资源空间名称。
目前没太明白get pods 和 get deployment的区别。
2、pod相当于我们tomcat容器,我们就可以把应用部署到pod中,所以pod充当的是一个逻辑主机的角色;
一般来说,用户不应该直接创建Pod,即使创建单个的Pod也应该通过控制器创建。在集群范围内,控制器为Pod提供自愈能
力,以及副本和部署管理。(控制器指的是deployment吗)3、和pod相关的API对象
kubectl explain pods 可以看到和pod相关的api对象有哪些,也就是通过资源清单部署一个pod时需要哪些字段。
apiVersion
apiVersion定义了此对象表示的版本化模式。服务器应将已识别的模式转换为最新的内部
值,并可能拒绝无法识别的值。更多信息:
https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
kind
Kind是表示此对象表示的REST资源的字符串值。服务器可以从客户端提交请求的端点推断出
这一点
metadata
标准对象的元数据。更多信息:
https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
spec
指定容器的所需行为。更多信息:
https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-andstatus
status
最近观察到了pod的状态。此数据可能不是最新的。由系统填充。只读。更多信息:
https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-andstatus4、通过定义一个pod资源清单yaml创建pod
查看定义资源清单需要的命令
kubectl explain pods.apiVersion
kubectl explain pods.kind
kubectl explain pods.metadata
kubectl explain pods.speccat pod.yaml
kubectl apply -f pod.yaml 通过yaml文件创建一个pod应用,然后查看pod运行情况。
(5)pod生命周期
(6)常见的pod状态
(7)node lable
(1)查看nodes节点的标签
kubectl get nodes --show-labels
(2)给node节点打标签:
kubectl label nodes node01 node011=haha
kubectl get nodes --show-labels 在查看一下,显示如下,可以看到node01上有
node011这个标签了
(3)节点选择器nodeSelector <map[string]string>
NodeSelector is a selector which must be true for the pod to fit on a node.Selector which must match a node's labels for the pod to be scheduled on
that node. More info:
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
上面有一个nodeSelector,这个是节点标签选择器,可以限制pod运行在哪个节点上
kubectl get pods -o wide从上面可以看到web运行在node1上,如果我们想要让它运行在master1上,就需要用到节点选择器
nodeSelector:
node011: haha #这个node011是我们给node01节点打的标签,在上面已经操作过
cat pod.yaml 看到完整的文件如下:kubectl delete -f pod-demo.yaml
kubectl create -f pod-demo.yaml
kubectl get pods -o wide 显示pod-demo运行在node01上了
如果node01和node02都有node011这个标签,那么nodeSelector则根据调度策略调度pod到相
应的node节点上
节点名称
nodeName:指定pod节点运行在哪个具体node上,不存在调度说法补充:1、查看某个pod的具体信息
2、进到pod下面某个容器内部
3、
-
相关阅读:
js中break/continue
js实现连接的两种放法
jsdate对象toLocaleString()方法小结
接口学习小节
c# 装箱和拆箱
c#数据类型学习
return 作用域
js中break/continue
ArcGIS Runtime for Android开发教程V2.0(9)基础篇查询检索
【转】ArcGIS 10.1 地图发布以及缓存管理
- 原文地址:https://www.cnblogs.com/maowuyu-xb/p/11949891.html