2024年最全k8s学习-Pod(生命周期、探针、模板、创建、删除等(1),作为一个网络安全程序员你还不会JetPack

一、网安学习成长路线图

网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、网安视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

三、精品网安学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、网络安全源码合集+工具包

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

五、网络安全面试题

最后就是大家最关心的网络安全面试题板块
在这里插入图片描述在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

telnet ip port


![在这里插入图片描述](https://img-blog.csdnimg.cn/5526c689f3f34af7b79480d758d6912f.png#pic_center)


#### httpGet


对容器的 IP 地址上指定端口和路径执行 HTTP GET 请求。如果响应的状态码大于等于 200 且小于 400,则诊断被认为是成功的。  
 例如,



curl -I http://ip:port


![在这里插入图片描述](https://img-blog.csdnimg.cn/12313a4dedb04b788be9483022b93f93.png#pic_center)


#### grpc(测试中)


使用 gRPC 执行一个远程过程调用。了解一下即可。


### 探针类型


看 deploy coredns 的yaml



kubectl get deploy coredns -n kube-system -oyaml


后面的为截取的内容


#### livenessProbe


存活探针,指示容器是否正在运行。如果存活状态探测失败,则 kubelet 会杀死容器, 并且容器将根据其**重启策略**决定何时重启。如果容器不提供存活探针, 则默认状态为Success。



livenessProbe:
failureThreshold: 5
httpGet:
path: /health
port: 8080
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5


* failureThreshold:失败次数
* initialDelaySeconds:初始化时间
* periodSeconds:检测间隔时间
* successThreshold:成功次数
* timeoutSeconds:超时时间


使用HttpGet的方式,发送数据包来探测。整个流程大致为,发送http数据包,若在5秒内收到200-400状态码,则成功,否则等待10s继续发送,直至失败5次,就认为失败了,容器没有存活。


#### readinessProbe


就绪探针,指示容器是否准备好为请求提供服务。如果就绪态探测失败, 端点控制器将从与 Pod 匹配的所有服务的端点列表中删除该 Pod 的 IP 地址。 初始化之前的就绪态的状态值默认为 Failure。 如果容器不提供就绪探针,则默认状态为Success。



readinessProbe:
failureThreshold: 3
httpGet:
path: /ready
port: 8181
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1


同样使用HttpGet的方式,发送数据包来探测


#### startupProbe


启动探针,指示容器中的应用是否已经启动。如果提供了启动探针,则所有其他探针都会被禁用,直到此探针成功为止。如果启动探测失败,kubelet 将杀死容器,而容器依其 **重启策略**进行重启。 如果容器没有提供启动探测,则默认状态为 Success。


## Init Containers(初始化容器)


创建pod命令执行后,使用get po的时候看到的 Init,用于初始化,一般很小。  
 • 一直运行,直到完成。  
 • 每个都必须在下一个启动之前成功完成。


## Ephemeral Containers(临时容器)


用于调试、故障排查  
 临时容器与其他容器的不同之处在于,它们缺少对资源或执行的保证,并且永远不会自动重启, 因此不适用于构建应用程序。 临时容器使用与常规容器相同的 ContainerSpec 节来描述,但许多字段是不兼容和不允许的。  
 • 临时容器没有端口配置,因此像 ports,livenessProbe,readinessProbe 这样的字段是不允许的。  
 • Pod 资源分配是不可变的,因此 resources 配置是不允许的。


## 模版


一个比较全的Pod yaml文件模板



apiVersion: v1 # 必选,API的版本号
kind: Pod # 必选,类型 这里填Pod
metadata: # 必选,元数据
name: nginx # 必选,符合RFC 1035规范的Pod名称
namespace: default # 可选,Pod所在的命名空间,不指定默认为default,一般在kubectl中使用-n指定namespace
labels: # 可选,标签选择器,一般用于过滤和区分Pod,可以写多个
app: nginx
role: frontend
annotations: # 可选,注释列表,可以写多个
app: nginx
spec: # 必选,用于定义容器的详细信息
initContainers: # 可选,初始化容器,在容器启动之前执行的一些初始化操作

  • command:
    • sh
    • -c
    • echo “I am a InitContainer that init some configurations”
      image: busybox
      imagePullPolicy: IfNotPresent # 可选,镜像拉取策略,宿主机有了就不拉取
      name: init-container
      containers: # 必选,容器列表
  • name: nginx # 必选,符合RFC 1035规范的容器名称
    image: nginx:latest # 必选,容器所用的镜像的地址
    imagePullPolicy: Always # 可选,镜像拉取策略
    command: # 可选,容器启动执行的命令
    • nginx
    • -g
    • “daemon off;”
      workingDir: /usr/share/nginx/html # 可选,容器的工作目录
      volumeMounts: # 可选,存储卷配置,可以配置多个
    • name: webroot # 存储卷名称
      mountPath: /usr/share/nginx/html # 挂载目录
      readOnly: true # 只读
      ports: # 可选,容器需要暴露的端口号列表
    • name: http # 端口名称
      containerPort: 80 # 端口号
      protocol: TCP # 端口协议,默认TCP
      env: # 可选,环境变量配置列表
    • name: TZ # 变量名
      value: Asia/Shanghai # 变量的值
    • name: LANG
      value: en_US.utf8
      resources: # 可选,资源限制和资源请求限制
      limits: # 最大限制设置
      cpu: 1000m
      memory: 1024Mi
      requests: # 启动所需的资源
      cpu: 100m
      memory: 512Mi
      startupProbe: # 可选,检测容器内进程是否完成启动。注意三种检查方式同时只能使用一种。
      httpGet: # httpGet检测方式,生产环境建议使用httpGet实现接口级健康检查,健康检查由应用程序提供。
      path: /api/successStart # 检查路径
      port: 80
      readinessProbe: # 可选,健康检查。注意三种检查方式同时只能使用一种。
      httpGet: # httpGet检测方式,生产环境建议使用httpGet实现接口级健康检查,健康检查由应用程序提供。
      path: / # 检查路径
      port: 80 # 监控端口
      livenessProbe: # 可选,健康检查
      exec: # 执行容器命令检测方式
      command:
      - cat
      - /health
      httpGet: # httpGet检测方式
      path: /_health # 检查路径
      port: 8080
      httpHeaders: # 检查的请求头
      • name: end-user
        value: Jason
        tcpSocket: # 端口检测方式
        port: 80
        initialDelaySeconds: 60 # 初始化时间
        timeoutSeconds: 2 # 超时时间
        periodSeconds: 5 # 检测间隔
        successThreshold: 1 # 检查成功为1次表示就绪
        failureThreshold: 2 # 检测失败2次表示未就绪
        lifecycle: # 可选,生命周期
        postStart: # 容器创建完成后执行的指令, 可以是exec httpGet TCPSocket
        exec:
        command:
        • sh
        • -c
        • 'mkdir /data/ ’
          preStop: # 容器停止前执行的命令
          httpGet:
          path: /
          port: 80
          exec:
          command:
        • sh
        • -c
        • sleep 9
          restartPolicy: Always # 可选,默认为Always,总是拉取。Never不管是否存储都不拉取
          nodeSelector: # 可选,指定Node节点
          region: subnet7
          imagePullSecrets: # 可选,拉取镜像使用的secret,可以配置多个
  • name: default-dockercfg-86258
    hostNetwork: false # 可选,是否为主机模式,如是,会占用主机端口
    volumes: # 共享存储卷列表
  • name: webroot # 名称,与上述对应
    emptyDir: {} # 挂载目录
    hostPath: # 挂载本机目录
    path: /etc/hosts

我下载了k8s源代码,可以查看一下PullPolicy  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/49e3e2333d4045fbb011b54e9d9629ef.png#pic_center)


* Always:kubelet pull最新镜像,pull失败,容器就启动失败。
* Nerver:kubelet 不pull镜像,使用本地镜像,没有就失败。
* IfNotPresent:kubelet在镜像没有时就pull,如果本地没有,pull也失败,容器启动失败。


博主喜欢使用第3个


## 创建


或许你看到前面的很长的yaml已经蒙了,那在这里我们就创建一个简单的仅包含一个nginx容器的Pod



apiVersion: v1
kind: Pod
metadata:
name: nginx-test
spec:
containers:

  • name: nginx
    image: nginx
    ports:
    • name: http
      containerPort: 80


kubectl create -f nginx-test.yaml -n lady-killer9


可以使用 -n 指定命名空间  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/19b0af40fb234b3ab5e635340f62cfbd.png#pic_center)  
 由于实际使用中基本不会使用原生的Pod,而是使用Deployment等资源,这里博主就不再创建了。建议读者耐心看看模板,然后添加写挂载卷、探针等。


## 查看


查看部分信息



kubectl get po -n lady-killer9


![在这里插入图片描述](https://img-blog.csdnimg.cn/377b61ed8dde4f138d088e253555cdb1.png#pic_center)  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/3b9e28d58b394e93bdace800f9185f67.png#pic_center)  
 查看详细信息



kubectl get po -n lady-killer9 -o wide


![在这里插入图片描述](https://img-blog.csdnimg.cn/1836e2491a3e4834ab1a6ea076c6f7f2.png#pic_center)




### 给大家的福利


**零基础入门**


对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


![](https://img-blog.csdnimg.cn/img_convert/95608e9062782d28f4f04f821405d99a.png)


同时每个成长路线对应的板块都有配套的视频提供:


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a91b9e8100834e9291cfcf1695d8cd42.png#pic_center)


因篇幅有限,仅展示部分资料


网络安全面试题


![](https://img-blog.csdnimg.cn/img_convert/80674985176a4889f7bb130756893764.png)


绿盟护网行动


![](https://img-blog.csdnimg.cn/img_convert/9f3395407120bb0e1b5bf17bb6b6c743.png)


还有大家最喜欢的黑客技术


![](https://img-blog.csdnimg.cn/img_convert/5912337446dee53639406fead3d3f03c.jpeg)


**网络安全源码合集+工具包**


![](https://img-blog.csdnimg.cn/img_convert/5072ce807750c7ec721c2501c29cb7d5.png)


![](https://img-blog.csdnimg.cn/img_convert/4a5f4281817dc4613353c120c9543810.png)

**所有资料共282G**,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618540462)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值