K8s的陈述式资源管理

命令行:kubectl 命令行工具

优点:90%以上的场景都可以满足

对资源的增删,查比较方便,对该不是很友好

缺点:命令比较长,复杂,难记

声明式:

k8s当中的yaml文件来实现资源管理-------声明式

GUI:图形化工具的管理。

  1. kubectl命令的详解  查看  部署   查看pod的情况(详细信息。日志。发布和回滚) 

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指定命名空间。

Pod的部署:

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都会删除

K8s的陈述式资源管理_第1张图片

不是控制器创建的pod会被直接删除,是基于控制器创建pod,要先删除命名空间才可以删除pod

远程进入节点容器:

Docker的exec只能 在本机内部使用,不能跨主机。Kubectl exec可以跨入主机进入容器

K8s的陈述式资源管理_第2张图片

Grace-period:表示过度的存活器。 Grace-period=0 立刻退出。默认是30秒 可以让pod优雅结束容器内的进程,然后退出pod=0 表示立刻停止pod,必须要force。

主要是用于结束卡在销毁状态的pod。

如何对基于deploment控制器创建的pod扩 缩容

扩容:

K8s的陈述式资源管理_第3张图片

缩容:

K8s的陈述式资源管理_第4张图片

如何吧服务的service进行发布:

  Service的类型:

     查看当前命名空间的service

查看不同命名空间的service

  1. clusterip:创建service的默认类型,提供一个集群内部的虚拟IP地址,这是service默认类型。通过这个虚拟IP可以直接访问pod的资源,无法对外提供访问。
  2. Nodeport:会在每个node节点上都会开放一个相同的端口,外部可以通过node的本机ip+端口,访问pod资源。这是集群外部访问service资源的一种方式。四层代理方式。

 Nodeip:nodeport

随机指派,也可以指定 30000~32767

--port=80 service集群的端口

--target-port=80 pod内部容器的端口

  1. LoadBalancer:如果service的类型设定为LoadBalancer,映射地址(云平台提供LoadBalancer的地址)这种用法仅次于公有云服务供应商在云平台上设置的service的场景,外部来访问,实现负载均衡。LoadBalancer这个是地址要交费的

   创建好了service,指定类型为LoadBalancer,会给你提供一个地址来代理pod内部的ip地址。    K8s的陈述式资源管理_第5张图片

  1. ExternalName:dns映射,给service分配一个域名,通过域名来访问后端pod资源。ExternalName的service类型不能提供负载均衡,必须要设置一个LoadBalancer的地址才可以实现。
  2. K8s的陈述式资源管理_第6张图片
  3. 10.96.232.240 集群内部的IP地址,外部是不可以访问这个IP地址

    80:对应的是内部service的端口

    32436:和内部的service的80端口做映射

    Pod内部的容器的端口是固定的,--port是service和容器映射的端口。可以是任意的

  4. K8s的陈述式资源管理_第7张图片

  5. K8s的陈述式资源管理_第8张图片

  6. 修改端口:

查看回滚点

K8s的陈述式资源管理_第9张图片

数字的大小决定了距离上次操作的远近,数字越大,就是靠近最近一次操作、

K8s的陈述式资源管理_第10张图片

回滚到1:

查看集群内的所有信息

你可能感兴趣的:(kubernetes,linux,容器)