目录

一、kubectl命令详解

1、查看某个资源的详细信息:kubectl describe pod pod_name -n nameapace

2、查看指定命名空间中pod的基本信息:kubectl get pods -n namespace

3、跨主机登录容器:kubectl exec -it pod_name /bin/bash -n namespace

4、删除pod

4.1、直接删除pod。但是deployment,副本控制器还在,他就会自己再创建一个。

①、直接删除POD

②、查看,发现与原先pod_name不一样,

4.2、删除pod副本控制器deployment:

4.3、如果删除过程中出现幺蛾子,Pod无法删除,总是处于terminating状态,则执行强行删除--force --grace-period=0

5、命令行扩容和缩容

5.1、副本集的扩容

①查看原有副本集:1个

②扩容副本集为4

5.2、副本集的缩容

6、删除service

7、查看pod网络状态详情信息和service暴露的端口

8、查看关联后的节点

9、查看service的描述信息

二、pod的生命周期

1、创建一个Pod,启动nginx实例,暴露容器80端口,设置副本集为3(创建pod)

namespace为默认

2、 发布:kubectl expose命令 ​编辑

3、 查看端口

​三、 service的type类型


一、kubectl命令详解

1、查看某个资源的详细信息:kubectl describe pod pod_name -n nameapace

[root@master ~]# kubectl describe pods -n kube-public

### 查看指定命名空间中的pod的详细信息

Name:         nginx-w1-7464d66457-psk6h
Namespace:    kube-public
Priority:     0
Node:         node01/192.168.159.11
Start Time:   Wed, 02 Nov 2022 01:40:47 +0800
Labels:       app=nginx-w1pod-template-hash=7464d66457
Annotations:  <none>
Status:       Running
IP:           10.150.1.3
IPs:IP:           10.150.1.3
Controlled By:  ReplicaSet/nginx-w1-7464d66457
Containers:nginx:Container ID:   docker://4011df060a9ad777793f061675fc1a784f4effe56f5585d91d5ba3670660c620Image:          nginxImage ID:       docker-pullable://nginx@sha256:943c25b4b66b332184d5ba6bb18234273551593016c0e0ae906bab111548239fPort:           <none>Host Port:      <none>State:          RunningStarted:      Wed, 02 Nov 2022 01:41:06 +0800Ready:          TrueRestart Count:  0Environment:    <none>Mounts:/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-llzgh (ro)
Conditions:Type              StatusInitialized       True Ready             True ContainersReady   True PodScheduled      True
Volumes:kube-api-access-llzgh:Type:                    Projected (a volume that contains injected data from multiple sources)TokenExpirationSeconds:  3607ConfigMapName:           kube-root-ca.crtConfigMapOptional:       <nil>DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300snode.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:                      <none>Name:         nginx-x1-77484d895f-ddhqt
Namespace:    kube-public
Priority:     0
Node:         node02/192.168.159.13
Start Time:   Thu, 03 Nov 2022 16:16:11 +0800
Labels:       app=nginx-x1pod-template-hash=77484d895f
Annotations:  <none>
Status:       Running
IP:           10.150.2.3
IPs:IP:           10.150.2.3
Controlled By:  ReplicaSet/nginx-x1-77484d895f
Containers:nginx:Container ID:   docker://ecc07803682f2d7a51037024354dae0d190841443121ca0a8514ab224179cbf5Image:          nginx:latestImage ID:       docker-pullable://nginx@sha256:943c25b4b66b332184d5ba6bb18234273551593016c0e0ae906bab111548239fPort:           <none>Host Port:      <none>State:          RunningStarted:      Thu, 03 Nov 2022 16:16:36 +0800Ready:          TrueRestart Count:  0Environment:    <none>Mounts:/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-47hxr (ro)
Conditions:Type              StatusInitialized       True Ready             True ContainersReady   True PodScheduled      True
Volumes:kube-api-access-47hxr:Type:                    Projected (a volume that contains injected data from multiple sources)TokenExpirationSeconds:  3607ConfigMapName:           kube-root-ca.crtConfigMapOptional:       <nil>DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300snode.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:                      <none>

2、查看指定命名空间中pod的基本信息:kubectl get pods -n namespace

[root@master ~]# kubectl get pods -n kube-public

NAME                        READY   STATUS    RESTARTS   AGE
nginx-w1-7464d66457-psk6h   1/1     Running   0          43h
nginx-x1-77484d895f-ddhqt   1/1     Running   0          5h12m

3、跨主机登录容器:kubectl exec -it pod_name /bin/bash -n namespace

root@master ~]# kubectl exec -it nginx-x1-77484d895f-ddhqt /bin/bash -n kube-public

[root@master ~]# kubectl exec -it nginx-x1-77484d895f-ddhqt /bin/bash -n kube-public
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
root@nginx-x1-77484d895f-ddhqt:/#

4、删除pod

4.1、直接删除pod。但是deployment,副本控制器还在,他就会自己再创建一个。

[root@master ~]# kubectl delete pod nginx- -n kube-public
pod "nginx-w1-7464d66457-psk6h" deleted

①、直接删除POD

②、查看,发现与原先pod_name不一样,

4.2、删除pod副本控制器deployment:

[root@master ~]# kubectl delete deployment nginx-w1 -n kube-public

4.3、如果删除过程中出现幺蛾子,Pod无法删除,总是处于terminating状态,则执行强行删除--force --grace-period=0

5、命令行扩容和缩容

5.1、副本集的扩容

①查看原有副本集:1个

②扩容副本集为4

5.2、副本集的缩容

基于上面结果进行实验,设置--replicas=2,指定副本集数量后,他会根据现有的副本集数量和期望值相比较,从而决定时扩容还是缩容

6、删除service

[root@master ~]# kubectl delete svc nginx-server -n default

[root@master ~]# kubectl get svc -n default
NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes      ClusterIP   10.125.0.1      <none>        443/TCP        2d6h
nginx-server    NodePort    10.125.126.34   <none>        80:30537/TCP   45m
nginx1-server   NodePort    10.125.103.25   <none>        80:31070/TCP   2m41s
[root@master ~]# kubectl delete svc nginx-server -n default
service "nginx-server" deleted

7、查看pod网络状态详情信息和service暴露的端口

[root@master ~]# kubectl get svc,pods -n default

8、查看关联后的节点

[root@master ~]# kubectl get endpoints

[root@master ~]# kubectl get endpoints
NAME             ENDPOINTS                                    AGE
kubernetes       192.168.159.10:6443                          2d6h
nginx1-service   10.150.1.10:80,10.150.1.9:80,10.150.2.9:80   32m

9、查看service的描述信息

[root@master ~]# kubectl describe svc nginx


[root@master ~]# kubectl describe svc nginx
Name:                     nginx1-service
Namespace:                default
Labels:                   app=nginx
Annotations:              <none>
Selector:                 app=nginx
Type:                     NodePort
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       10.125.32.0
IPs:                      10.125.32.0
Port:                     <unset>  80/TCP
TargetPort:               80/TCP
NodePort:                 <unset>  31625/TCP
Endpoints:                10.150.1.10:80,10.150.1.9:80,10.150.2.9:80
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

10、核心组件查看日志

通过kubeadm方式部署的K8S

kubectl logs -f pod_name -n namespace  或者 journalctl -u kubelet -f

通过二进制部署的K8S

journalctl -u kubelet -f

二、pod的生命周期

pod生命周期是指:pod在从创建到删除过程中,所包含、经历的状态

pod的类型分为2中:

①、自主式:没有控制器管理的就是自助式的。删除时直接删除就行

②、申明式:有控制器管理的Pod。(我们一般使用的类型)

1、创建一个Pod,启动nginx实例,暴露容器80端口,设置副本集为3(创建pod)

namespace为默认

[root@master ~]# kubectl create deployment nginx-ceshi --image=nginx:1.14 --port 80 --replicas=3 
deployment.apps/nginx-ceshi created

2、 发布:kubectl expose命令 

3、 查看端口

三、 service的type类型

①、clusterIP:提供一个集群内部的虚拟IP以供Pod访问(service默认类型)

②、NodePort:在每个Node上打开一个端口以供外部访问,Kubernetes将会在每个Node上打开一个端口并且每个Node的端口都是一样的,通过 NodeIp:NodePort 的方式Kubernetes集群外部的程序可以访问service。每个端口只能是一种服务,端口范围只能是30000-32767

③、LoadBalancer:通过设置LoadBalancer映射到云服务商提供的LoadBalancer地址。这种用法仅用于在公有云服务提供商的云平台上设置service的场景。通过外部的负载均衡器来访问,通常在云平台部署LoadBalancer还需要额外的费用。

④、externalName:将service名称映射到一个DNS域名上,相当于DNS服务的CNAME记录,用于让Pod去访问集群外部的资源,它本身没有绑定任何的资源。

云原生之kubectl命令详解(二)及pod的相关操作相关推荐

  1. 云原生之kubectl命令详解

    目录 1.查看版本信息:kubectl version 2.查看资源对象简写(缩写):kubectl api-resources 3.查看集群信息:kubectl cluster-info 4.查看帮 ...

  2. Android 融云IM集成以及使用详解(二)

    Android 融云IM集成以及使用详解(二) 上篇讲解了集成和好友列表和消息记录的使用,这篇将讲解聊天界面和群聊界面的使用 先附上一张效果图 先介绍布局文件 <LinearLayout xml ...

  3. Linux系统与网络、磁盘参数和日志监控等命令详解二

    创作人QQ:851301776,邮箱:lfr890207@163.com, 欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点! 个人座右铭: 1.没有横空出世,只要厚积一定发. ...

  4. ARP命令详解--网络命令详解二

    显示和修改"地址解析协议 (ARP)"缓存中的项目.ARP 缓存中包含一个或多个表,它们用于存储 IP 地址及其经过解析的以太网或令牌环物理地址.计算机上安装的每一个以太网或令牌环 ...

  5. 【云原生】Kubernetes CRD 详解(Custom Resource Definition)

    文章目录 一.概述 二.定制资源 1)定制资源 和 定制控制器 2)定制控制器 3)Operator 介绍 1.Operator Framework 2.Operator 安装 3.安装 Operat ...

  6. kubectl常用命令_《蹲坑学kubernetes》之十五:kubectl命令详解

    kubectl用于运行Kubernetes集群命令的管理工具.本章节主要讲了kubectl基本语法和使用方法.在以后的实际工作中,使用越来越多,也会越来越熟悉. 1.kubectl语法 kubectl ...

  7. K8S之kubectl命令详解及常用示例??

    kubectl常用示例 查看类命令 # 获取节点和服务版本信息 kubectl get nodes # 获取节点和服务版本信息,并查看附加信息 kubectl get nodes -o wide# 获 ...

  8. 什么是云原生及飞轮理论详解【Cloud Native 是道,Service Mesh 是术】

    前言 特别指出:这次分享主要是希望起到抛砖引玉的作用,让大家更多的参与到云原生这个话题的讨论,希望后面有更多更好的分享.我们笨鸟先飞,起一个头. 内容主要围绕这几个问题,上半场我们将围绕前三个问题. ...

  9. python数据库环境详解_python中MySQL数据库相关操作

    一 安装基本环境 1 简介 MySQL 基于TCP 协议之上的开发,但是网络连接后,传输的数据必须遵循MySQL的协议,封装好MySQL协议的包,就是驱动程序 MySQL 的驱动 MySQLDB 最有 ...

最新文章

  1. 185.dubbo 后台管理系统
  2. 快手上市,蚂蚁酸了!不含主管人均收益1500万,蚂蚁不能比
  3. js bom window对象
  4. xgboost参数_珍藏版 | 20道XGBoost面试题,你会几个?(下篇)
  5. python 得到文件行数
  6. python的基本语术_Python中的基本语句详细资料说明
  7. MySQL数据类型及范围用法一览表
  8. python中content的用法_学python吗,教你5个python现学现用的有趣用法
  9. [转载] python[1]-print中的sep、end参数
  10. AndroidStudio_安卓原生开发_全局异常处理_并记录系统错误日志---Android原生开发工作笔记138
  11. System.UriFormatException: Invalid URI 解决方法
  12. C# 启动停止SQLServer数据库服务器
  13. 离散数学第六版第er章偶数题答案_离散数学答案(尹宝林版)第二章习题解答
  14. 2.5音频编辑软件2.6语音识别技术
  15. java rf14bug_让云平台发生重大宕机事故的15个方法
  16. 计算机if函数的作用,if函数的使用方法
  17. 计算机刚启动时会显示,电脑启动时出现Windows错误恢复怎么解决?
  18. sql语句之delete
  19. 【从零开始学深度学习编译器】十二,MLIR Toy Tutorials学习笔记一
  20. Java job interview:网页设计HTML+CSS前端开发与PS前台美化案例分析

热门文章

  1. Android 获取手机号
  2. MFC 窗口句柄,窗口ID,窗口指针
  3. 正则表达式-手机号码验证
  4. chip2chip axi ip核
  5. 苹果再遭起诉:iPhone和iPad被指控侵犯5项专利
  6. Airflow 常见问题汇总
  7. 一、大体认识jspxcms
  8. 利用OpenCV将连续帧图片转换为视频
  9. Glide清除缓存(清除内存缓存、本地缓存、清除所有缓存等)
  10. 冰冰学习笔记:内存操作函数