命令行:kubectl 命令行工具
优点:90%以上的场景都可以满足
对资源的增删,查比较方便,对该不是很友好
缺点:命令比较长,复杂,难记
声明式:
k8s当中的yaml文件来实现资源管理-------声明式
GUI:图形化工具的管理。
http://docs.kubernetes.org.cn/683.html kube字典
1,kubectl version 查看k8s的版本信息
2,kubectl api-resources 查看k8s所有api资源对象的名称(名称有简写)
3,kubectl cluster-info 查看k8s的集群信息
4,kubectl get cs 查看master节点的状态
5,kubectl get ns 查看当前所有集群的命名空间
6,kubectl get pod 查看默认命名空间的内pod信息
7,kubectl get pod -n kube-system 制定查看命名空间资源pod -n指定命名空间的名称
8,kubectl get pod -o wide 查看默认命名空间pod的详细信息
9,kubectl get pod -o wide -n kube-system 指定查看命名空间pod详细信息
10,kubectl get node 查询节点的信息状态
11,kubectl get node -o wide 查看node节点的详细信息
12,kubectl get pod 查看已经部署好的pod的详细信息
13,kubectl describe pod nginx-6799fc88d8-f9c8g 查看一个指定pod的详细信息(不管pod的状态)
14,kubectl logs nginx -f nginx-6799fc88d8-f9c8g 动态查看pod日志
15,kubectl create ns guoqi 创建命名空间
16,kubectl delete 男生guoqi 删除命名空间
先申明动作 create增 delete删 get查 desvribe pod 指定对象 :ns pod service 再跟上对象名称 不是默认命名空间 用 -n指定命名空间。
Deployment的部署pod
特点:称述式部署,命令行
yaml文件部署
滚动更新:不是一次性的吧所有pod全部部署,而是一个个来。Pod的更新时使用 。逐步的引入新的pod逐步减少旧pod
自我修复:如果有pod节点发生故障,deployment会自动启动新的pod来进行代替
回滚:如果更新有问题,deploment会提供还原点,可以手动还原到未更新的状态
扩容和缩容:deploment可以随时调整pod的数量,以适应流量的变化。
上述的功能必须是基于deploment创建的服务才可以,绝大多数的pod都是使用deploment创建的。
17,kubectl get deploment.apps -n kube-system 指定查询通过deploment创建的pod
18,kubectl get daemonsets.apps -n kube-system
daemonset:不能通过命令行创建。只能在yaml文件当中定义这种创建方式。
后台运行创建,在每个节点上都创建一个相同方式的相同版本的容器运行的pod。
一般都是依赖环境和重要组件,一般也不会去对这些资源进行操作。
用命令的方式创建一个pod
在指定命名空间创建pod
如果是基于deploment方式创建的pod,或者是daemonet方式创建的pod,是由控制值其创建pod
使用delete删除pod是删除不掉的,相当于启动pod
基于deploment方式创建pod,一但删除deploment,基于这个deploment创建的pod都会删除
不是控制器创建的pod会被直接删除,是基于控制器创建pod,要先删除命名空间才可以删除pod
远程进入节点容器:
Docker的exec只能 在本机内部使用,不能跨主机。Kubectl exec可以跨入主机进入容器
Grace-period:表示过度的存活器。 Grace-period=0 立刻退出。默认是30秒 可以让pod优雅结束容器内的进程,然后退出pod=0 表示立刻停止pod,必须要force。
主要是用于结束卡在销毁状态的pod。
如何对基于deploment控制器创建的pod扩 缩容
扩容:
缩容:
如何吧服务的service进行发布:
Service的类型:
查看当前命名空间的service
查看不同命名空间的service
Nodeip:nodeport
随机指派,也可以指定 30000~32767
--port=80 service集群的端口
--target-port=80 pod内部容器的端口
创建好了service,指定类型为LoadBalancer,会给你提供一个地址来代理pod内部的ip地址。
10.96.232.240 集群内部的IP地址,外部是不可以访问这个IP地址
80:对应的是内部service的端口
32436:和内部的service的80端口做映射
Pod内部的容器的端口是固定的,--port是service和容器映射的端口。可以是任意的
修改端口:
查看回滚点
数字的大小决定了距离上次操作的远近,数字越大,就是靠近最近一次操作、
回滚到1:
查看集群内的所有信息