管理k8s核心资源的三种基本方法:

一、陈述式-主要依赖命令行工具  --可以满足90%以上的使用场景,但是缺点也很明显:

  命令冗长,复杂,难以记忆

  特定场景下,无法实现管理需求

  对资源的增、删、查操作比较容易,改比较麻烦,需要patch来使用json串来更改。

  1.1 查看名称空间  查询时,为了避免重名,需要指定名称空间。

# kubectl get namespace
简写:
# kubectl get ns

  1.2 查询命名空间中的资源,使用-n 指定命名空间

# kubectl get all -n default
# kubectl get pods -n default
# kubectl get nodes -n default

  1.3 创建命名空间

# kubectl create ns app

  1.4 删除命名空间

# kubectl delete ns app

  1.5 创建一个deployment类型的pod控制器:PS:1.16版本以后,控制器有变化,具体变化参考k8s官网。

   pod控制器类型参考:https://www.cnblogs.com/weiyiming007/p/10246118.html

# kubectl create deployment nginx-dp --image=harbor.od.com/public/nginx:v1.7.9 -n kube-public
# kubectl get deploy -n kube-public

  1.6 查看pod控制器或者pod概览信息 : -o wide

# kubectl get deploy -o wide -n kube-public
# kubectl get pod -o wide -n kube-public

  1.7 查看pod控制器、pod、service等资源的详细信息:describe

# kubectl describe deploy nginx-dp -n kube-public
# kubectl describe pod nginx-dp-5dfc689474-4bhfh -n kube-public
# kubectl describe svc nginx-dp -n kube-public 

 详细信息太多,就不截图了。

  1.8 进入pod容器,用法和docker exec一致,但是需要使用-n 指定命名空间

# kubectl exec -ti nginx-dp-5dfc689474-4bhfh /bin/bash -n kube-public

  1.9 删除pod容器,此删除,只是删除了pod容器,并没有删除pod控制器,所以此操作相当于删除pod后,pod控制器在拉起一个新的pod。

# kubectl delete pods nginx-dp-5dfc689474-4bhfh -n kube-public

可以看到我们删除pod以后,pod控制器又帮我们从新拉起了一个新的pod,想要完全删除,需要删除pod控制器。

  1.10 删除pod控制器

# kubectl delete deploy nginx-dp -n kube-public

可以看到,当我们删除了pod控制器以后,pod容器也随之被删除了。

  1.11 扩容pod  --replicas=数量

# kubectl scale deployment nginx-dp --replicas=2 -n kube-public

  1.12 管理service资源 service资源:为pod资源提供稳定的接入点

# kubectl create deploy nginx-dp --image=harbor.od.com/public/nginx:v1.7.9
# kubectl expose deploy nginx-dp --port=80 -n kube-public

看到我们已经创建了一个service资源,可以通过192.168.234.234的80,访问到后面pod,为了解决pod漂移导致IP变化的问题。

可以使用ipvsadm -Ln来查看:nq为ipvs调度算法中的一种,其他调度算法请自行查阅。

我们通过删除pod的方式,让pod漂移到另一台node节点,再来查看一下:

可以看到,虽然pod漂移了,但是service资源提供的接入点是不变的,这得益于ipvs的强大。

  1.13 查看资源配置清单详细信息:-o yaml

# kubectl get pod nginx-dp-5dfc689474-c5r9r -o yaml -n kube-public
# kubectl get deploy nginx-dp -o yaml -n kube-public
# kubectl get svc -o yaml -n kube-public

  1.14 查看属性的定义及用法:例:查看service资源下metadata的定义及用法

# kubectl explain service.metadata

2、声明式-依赖统一资源配置清单(manifest) yaml/json

  2.1 创建一个svc资源配置清单

# vi nginx-ds-svc.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app: nginx-ds
name: nginx-ds
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx-ds
sessionAffinity: None
type: ClusterIP
# kubectl create -f nginx-ds-svc.yaml

# kubectl get svc nginx-ds -o yaml -n default

  2.2 离线修改资源配置清单:

  修改资源配置清单后可以使用apply应用。

这里增加一个知识点,就是kube-apiserver这个服务当中,有一个限制端口范围的参数:--service-node-port-range 10-29999,这个参数在使用apply修改资源配置清单的时候,会有作用

如果修改后的资源配置清单中的port不在这个范围,会报错,修改这个以后,重启kube-apiserver即可。

# vi nginx-ds-svc.yaml #将对外暴露的端口改为881
# kubectl apply -f nginx-ds-svc.yaml

可以看到端口从80变成了881

修改资源配置清单分为在线修改和离线修改(推荐离线修改):

  2.3 在线修改:我这里使用在线修改,将端口修改为888

# kubectl edit svc nginx-ds -n default

  2.4 删除资源:

    2.4.1 陈述式:

# kubectl delete svc nginx-ds -n default

    2.4.2 声明式:

# kubectl delete -f nginx-ds-svc.yaml

3、GUI式-主要依赖图形化操作界面(web界面)

kubernetes进阶(一) kubectl工具使用详解的更多相关文章

  1. 第九章 kubectl命令行工具使用详解

    1.管理k8s核心资源的三种基础方法 陈述式管理方法:主要依赖命令行CLI工具进行管理 声明式管理方法:主要依赖统一资源配置清单(manifest)进行管理 GUI式管理方法:主要依赖图形化操作界面( ...

  2. PowerShell攻防进阶篇:nishang工具用法详解

    PowerShell攻防进阶篇:nishang工具用法详解 导语:nishang,PowerShell下并肩Empire,Powersploit的神器. 开始之前,先放出个下载地址! 下载地址:htt ...

  3. Docker Kubernetes Service 网络服务代理模式详解

    Docker Kubernetes  Service 网络服务代理模式详解 Service service是实现kubernetes网络通信的一个服务 主要功能:负载均衡.网络规则分布到具体pod 注 ...

  4. Kubernetes K8S之资源控制器Daemonset详解

    Kubernetes的资源控制器Daemonset详解与示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2C/ ...

  5. kubernetes运行应用2之DaemonSet详解

    kubernetes运行应用1之Deployment详解   查看daemonset 如下,k8s自身的 DaemonSet kube-flannel-ds和kube-proxy分别负责在每个结点上运 ...

  6. Linux命令工具 top详解

    Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...

  7. Lua包管理工具Luarocks详解 - 15134559390的个人空间 - 开源中国社区

    Lua包管理工具Luarocks详解 - 15134559390的个人空间 - 开源中国社区 Lua包管理工具Luarocks详解

  8. [转]网络性能评估工具Iperf详解(可测丢包率)

    原文链接:安全运维之:网络性能评估工具Iperf详解:http://os.51cto.com/art/201410/454889.htm 参考博文:http://linoxide.com/monito ...

  9. IE8"开发人员工具"使用详解下(浏览器模式、文本模式、JavaScript调试、探查器)

    来源: http://www.cnblogs.com/JustinYoung/archive/2009/04/03/kaifarenyuangongju2.html 在上一篇文章IE8“开发人员工具” ...

随机推荐

  1. LR参数

    一.LR函数 : lr_start_transaction:   为性能分析标记事务的开始 lr_end_transaction: 为性能分析标记事务的结束:事务名称与事务开始时保持一致 lr_ren ...

  2. MySQL数据库基础知识及优化

    MySQL数据库基础知识及优化必会的知识点,你掌握了多少? 推荐阅读: 这些必会的计算机网络知识点你都掌握了吗 关于数据库事务和锁的必会知识点,你掌握了多少? 关于数据库索引,必须掌握的知识点 目录 ...

  3. java 利用异或^进行加密

    package com.zcj.eg001; import java.nio.charset.Charset; import org.junit.Test; public class Encrypti ...

  4. pytest学习笔记(pytest框架结构)

    一.pytest框架中使用setup.teardown.更灵活按照用例级别可以分为以下几类: 1.模块级:(setup_module.teardown_module)在模块始末调用 2.函数级:(se ...

  5. IDE 阅读代码时候如何防止误触

    在 JetBrains 系列的编辑器中,点击右下角小锁图标,就可以只读防止误修改. Visual Studio 下安装 CodeMaid 插件 http://www.codemaid.net/ htt ...

  6. 序列化 serialize

    Serializable 序列化  The byte stream created is platform independent. So, the object serialized on one ...

  7. 消息队列扫盲(RocketMQ 入门)

    消息队列扫盲 消息队列顾名思义就是存放消息的队列,队列我就不解释了,别告诉我你连队列都不知道似啥吧? 所以问题并不是消息队列是什么,而是 消息队列为什么会出现?消息队列能用来干什么?用它来干这些事会带 ...

  8. QTREE----树剖

    题目内容: ---------------------------------------------------- Query on a tree Time Limit: 851MS   Memor ...

  9. luogu p2622

    题目描述 现有n盏灯,以及m个按钮.每个按钮可以同时控制这n盏灯--按下了第i个按钮,对于所有的灯都有一个效果.按下i按钮对于第j盏灯,是下面3中效果之一:如果a[i][j]为1,那么当这盏灯开了的时 ...

  10. Java基础图解,JVM,线程,Spring,TCP,SpringMVC等开发体系图解

    Java基础图解,JVM,线程,Spring,TCP,SpringMVC等开发体系图解 1.Java虚拟机运行时数据区图 2. 堆的默认分配图 3.方法区结构图 4.对象的内存布局图 5.对象头的Ma ...