KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示_超发和超售(1)

还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!

王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。

对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!

【完整版领取方式在文末!!】

93道网络安全面试题

需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)

内容实在太多,不一一截图了

黑客学习资源推荐

最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

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

😝朋友们如果有需要的话,可以联系领取~

1️⃣零基础入门
① 学习路线

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

image

② 路线对应学习视频

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

image-20231025112050764

2️⃣视频配套工具&国内外网安书籍、文档
① 工具

② 视频

image1

③ 书籍

image2

资源较为敏感,未展示全面,需要的最下面获取

在这里插入图片描述在这里插入图片描述

② 简历模板

在这里插入图片描述

因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆

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

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

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

①. 什么是k8s对象

  1. 集群中运行了哪些容器化应用程序(以及在哪个节点上运行)
  2. 集群中对应用程序可用的资源(网络,存储等)
  3. 应用程序相关的策略定义,例如,重启策略、升级策略、容错策略
  4. 其他Kubernetes管理应用程序时所需要的信息
  5. scheduler先计算应该去哪个节点部署
  • ④. 对象的spec和status,每一个Kubernetes对象都包含了两个重要的字段:
  1. spec必须由您来提供,描述了您对该对象所期望的目标状态
  2. status只能由Kubernetes系统来修改,描述了该对象在Kubernetes系统中的实际状态
  3. Kubernetes通过对应的 控制器,不断地使实际状态趋向于您期望的目标状态
# kubectl create deployment my-nginx --image=nginx
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: "2022-01-03T09:18:20Z"
  generation: 1
  labels:
    app: my-nginx
  managedFields:
  - apiVersion: apps/v1
    fieldsType: FieldsV1
    manager: kubectl-create
    operation: Update
    time: "2022-01-03T09:18:20Z"
  - apiVersion: apps/v1
    fieldsType: FieldsV1
    manager: kube-controller-manager
    operation: Update
    time: "2022-01-03T09:18:39Z"
  name: my-nginx
  namespace: default
  resourceVersion: "99511"
  uid: 270afb1b-f4df-4b10-b708-53313027a805
spec: # 期望状态
  progressDeadlineSeconds: 600
  replicas: 1 # 副本数量
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: my-nginx
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: my-nginx
    spec:
      containers:
      - image: nginx # 使用这个镜像创建容器
        imagePullPolicy: Always
        name: nginx
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
status: # 当前状态
  availableReplicas: 1 # 当前集群可用的
  conditions:
  - lastTransitionTime: "2022-01-03T09:18:39Z"
    lastUpdateTime: "2022-01-03T09:18:39Z"
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  - lastTransitionTime: "2022-01-03T09:18:20Z"
    lastUpdateTime: "2022-01-03T09:18:39Z"
    message: ReplicaSet "my-nginx-6b74b79f57" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  observedGeneration: 1
  readyReplicas: 1
  replicas: 1
  updatedReplicas: 1
# 最终一致
# etcd保存的创建资源期望的状态和最终这个资源的状态要是一致的;spec和status要最终一致
# 1. kubectl create deployment my-nginx --image=nginx
# 2. pi-server保存etcd,controller-manager最终解析数据,知道集群要my-nginx一份,保存到etcd
# 3. kubelet就做一件事情,spec状态和最终状态一致
while(true){ if(my-nginx.replicas != spec.replicas) { kubelet.startPod(); } }

②. 描述k8s的对象

  • ①. 如何会写任意资源的yaml,比如Pod
    (kubectl run my-nginx666 --image=nginx #启动一个Pod)
  1. kubectl get pod my-nginx666 -oyaml集群中挑一个同类资源,获取出他的yaml
  2. kubectl run my-tomcat --image=tomcat --dry-run -oyaml 干跑一遍
  • ②. 当您在Kubernetes中创建一个对象时,您必须提供
  1. 该对象的spec字段,通过该字段描述您期望的目标状态,该对象的一些基本信息,例如名字
  2. 可以使用 kubectl 命令行创建对象,也可以编写.yaml 格式的文件进行创建
[root@k8smaster ~]# kubectl run my-tomcat --image=tomcat --dry-run -oyaml # dry-run过期了,可以使用dry-run=client
[root@k8smaster ~]# kubectl api-resources | grep pod
# tomcat干跑
#(1). apiVersion和kind称为typeMeta(基本信息)
#(2). metadata成为元数据,ObjectMeta
apiVersion: v1 # 同一个资源有可能有多个版本。看 kubectl api-resources提示的
kind: Pod # 资源类型 kubectl api-resources:可以获取到所有资源
metadata: # 每一个资源定义一些元数据信息
  labels:
    run: my-tomcat
  name: my-tomcat # 指定资源的名字
spec: # 资源的规格(镜像名、镜像的环境变量信息等等)
  containers: # 指定要启动一个什么样的容器
  - image: tomcat # 容器的镜像
    name: my-tomcat # 容器的名字
    resources: {} # 容器的资源信息(后面详解)
  dnsPolicy: ClusterFirst # dns的策略信息(后面详解)
  restartPolicy: Always
# 以上是资源的完整规格描述部分 以上是我们必须会编写的
# status不用我们写,是k8s集群实时更新的状态信息,只要资源变化,kubelet会请求api-server保存最新的资源状态信息
status: {} 

在这里插入图片描述

  • ③. 在想要创建的Kubernetes对象对应的.yaml文件中,需要配置如下的字段(必须字段)
  1. apiVersion:创建该对象所使用的Kubernetes API的版本
  2. kind:想要创建的对象的类别
  3. metadata: 用于唯一确定该对象的元数据:包括name和namespace,如果namespace为空,则默认值为default
  4. spec:你所期望的该对象的状态
  5. 不同类型的 Kubernetes,其spec对象的格式不同(含有不同的内嵌字段),通过API手册可以查看 Kubernetes对象的字段和描述。例如,假设您想了解Pod的spec定义,可以在这里找到,Deployment的spec定义可以在这里找到
    在这里插入图片描述

③. 管理k8s的对象

  • ①. 同一个Kubernetes对象应该只使用一种方式管理,否则可能会出现不可预期的结果
    在这里插入图片描述
  • ②. kubectl create -f 没有会创建,有的话会报错
    kubectl apply -f 没有会创建,有的话不会报错

④. k8s的名称空间

  • ①. Namespace:名称空间,用来对集群资源进行隔离划分。默认只隔离资源,不隔离网络
    (同一名称下的资源可以共享,不同名称空间下的资源不能共享,但是不同名称空间下的网络可以互通)
  • ②. 关于Namespace中基本的命令
    kubectl get ns:查看命名空间
    kubectl create ns hello:创建命名空间
    kubectl delete ns hello:删除命名空间
  • ③. 使用yaml的文件创建命名空间(下面创建了hello的命名空间),hello.yaml
    如果要删除命名空间:kubectl delete -f hello.yaml
[root@k8smaster k8syaml]# kubectl create ns hello--dry-run=client -oyaml 
apiVersion: v1
kind: Namespace
metadata:
  name: hello # 名称空间的名字
spec: {}
status: {}

  • ④. 使用kubectl get pods:查看的是默认(default命名空间)下的内容
[root@k8s-master~]kubectl get pods
No resources found in default namespace

  • ⑤. Kubernetes 安装成功后,默认有初始化了三个名称空间:
  1. default默认名称空间,如果Kubernetes对象中不定义metadata.namespace字段,该对象将放在此名称空间下
  2. kube-system Kubernetes系统创建的对象放在此名称空间下
  3. kube-public此名称空间自动在安装集群是自动创建,并且所有用户都是可以读取的(即使是那些未登录的用户)。主要是为集群预留的,例如,某些情况下,某些Kubernetes对象应该被所有集群用户看到

⑤. 给k8s对象打标签

  • ①. 通过命令行的方式打标签
[root@k8smaster k8syaml]# kubectl get pod
NAME      READY   STATUS    RESTARTS   AGE
mynginx   1/1     Running   0          34s
[root@k8smaster k8syaml]# kubectl label pod mynginx name=tangzhi # 将mynginx进行打标签
pod/mynginx labeled
[root@k8smaster k8syaml]# kubectl get pod --show-labels # 查看pod的标签
NAME      READY   STATUS    RESTARTS   AGE   LABELS
mynginx   1/1     Running   0          91s   name=tangzhi,run=mynginx
[root@k8smaster k8syaml]# kubectl label pod mynginx name-  # 将标签name进行删除
pod/mynginx labeled
[root@k8smaster k8syaml]# kubectl get pod --show-labels
NAME      READY   STATUS    RESTARTS   AGE    LABELS
mynginx   1/1     Running   0          119s   run=mynginx

在这里插入图片描述在这里插入图片描述

  • ②. 通过yaml的方式打标签
# 自己给pod的yaml文件的方式打标签
# pod带上名称空间和label的
kind: Pod
apiVersion: v1
metadata:
  name: my-nginx-labels
  namespace: hello # 在hello命名空间下创建pod
  labels:
     aa: bb
     bb: dd
spec:  # 指定规格信息
  containers:  # 指定要启动一个什么样的容器
  - image: nginx   #指定镜像



还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!


王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。


对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!


【完整版领取方式在文末!!】


***93道网络安全面试题***


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








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





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



**需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)**

内容实在太多,不一一截图了


### 黑客学习资源推荐


最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!


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

#### 1️⃣零基础入门


##### ① 学习路线


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


![image](https://img-blog.csdnimg.cn/img_convert/acb3c4714e29498573a58a3c79c775da.gif#pic_center)


##### ② 路线对应学习视频


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


![image-20231025112050764](https://img-blog.csdnimg.cn/874ad4fd3dbe4f6bb3bff17885655014.png#pic_center)

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

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

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

  • 19
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值