k8s资源之pod全面讲解

Kubernetes K8S之通过yaml文件创建Pod与Pod常用字段详解 YAML语法规范;在kubernetes k8s中如何通过yaml文件创建pod,以及pod常用字段详解 阅读详情

 欢迎关注我的公众号:

 目前刚开始写一个月,一共写了18篇原创文章,文章目录如下:

istio多集群探秘,部署了50次多集群后我得出的结论

istio多集群链路追踪,附实操视频

istio防故障利器,你知道几个,istio新手不要读,太难!

istio业务权限控制,原来可以这么玩

istio实现非侵入压缩,微服务之间如何实现压缩

不懂envoyfilter也敢说精通istio系列-http-rbac-不要只会用AuthorizationPolicy配置权限

不懂envoyfilter也敢说精通istio系列-02-http-corsFilter-不要只会vs

不懂envoyfilter也敢说精通istio系列-03-http-csrf filter-再也不用再代码里写csrf逻辑了

不懂envoyfilter也敢说精通istio系列http-jwt_authn-不要只会RequestAuthorization

不懂envoyfilter也敢说精通istio系列-05-fault-filter-故障注入不止是vs

不懂envoyfilter也敢说精通istio系列-06-http-match-配置路由不只是vs

不懂envoyfilter也敢说精通istio系列-07-负载均衡配置不止是dr

不懂envoyfilter也敢说精通istio系列-08-连接池和断路器

不懂envoyfilter也敢说精通istio系列-09-http-route filter

不懂envoyfilter也敢说精通istio系列-network filter-redis proxy

不懂envoyfilter也敢说精通istio系列-network filter-HttpConnectionManager

不懂envoyfilter也敢说精通istio系列-ratelimit-istio ratelimit完全手册

 

----------------------------------------------------------------------------------------------------------------------------------------

1)

•K8s核心资源,用于运行容器

•简称:po

•一个pod可以运行多个容器

•Pod中的容器可以共享网络和存储

常用命令:

kubectl create -f nginx-01.yaml 
kubectl apply -f nginx-01.yaml
 kubectl get pod 
kubectl get pod -l name=nginx
kubectl delete pod nginx
kubectl delete pod –all
kubectl get pod -o wide
kubectl edit pod nginx
kubectl get pod nginx -o yaml
Kubectl delete pod –f nginx-01.yaml
kubectl label pod nginx project=web
kubectl annotate pod nginx project=web
kubectl exec -it nginx /bin/bash
kubectl cp default/nginx:/etc/nginx/nginx.conf ~/nginx.conf
 kubectl cp ~/aa default/nginx:/tmp
 kubectl logs nginx

2)Pod生命周期

3)Pod重启策略

•Pod的重启策略RestartPolicy可能的值为 Always、OnFailure 和 Never,默认为 Always

•Always:当容器失效时,由kubelet自动重启

•OnFailure:当容器终止运行且退出码不为0时,由kubelet自动重启

•Never:不论容器运行状态如何都不会重启

4)Pod健康检查

•LivenessProbe:存活性探测

ReadnessProbe:就绪性探测
其存活性探测的方法可配置以下三种实现方式:

ExecAction:在容器内执行指定命令。如果命令退出时返回码为 0 则表明容器健康

•TCPSocketAction:对指定端口上的容器的 IP 地址进行 TCP 检查。如果能够建立连接,则表明容器健康。

•HTTPGetAction:对指定的端口和路径上的容器的 IP 地址执行 HTTP Get 请求。如果响应的状态码大于等于200 且小于 400则表明容器健康

initialDelaySeconds和timeoutSeconds参数,分别表示首次检查等待时间以及超时时间。

periodSeconds: 15 #检查间隔时间

failureThreshold: 3最大失败次数

successThreshold: 1失败后测试成功的最小连接成功次数

[root@master01 readiness]# cat pod-readiness-exec.yaml 
apiVersion: v1
kind: Pod
metadata:
  labels:
    test: readiness-exec
  name: readiness-exec
spec:
  containers:
  - name: liveness
    image: busybox
    args:
    - /bin/sh
    - -c
    - echo ok > /tmp/health; sleep 10; rm -rf /tmp/health; sleep 600
    readinessProbe:
      exec:
        command:
        - cat
        - /tmp/health
      initialDelaySeconds: 15
      timeoutSeconds: 1
[root@master01 readiness]# cat pod-readiness-http.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: pod-http-healthcheck
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80
    readinessProbe:
      httpGet:
        path: /_status/healthz
        port: 80
      initialDelaySeconds: 30
      timeoutSeconds: 1
[root@master01 readiness]# cat pod-readiness-tcp.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: pod-tcp-healthcheck
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80
    readinessProbe:
      tcpSocket:
        port: 80
      initialDelaySeconds: 30
      timeoutSeconds: 1

liveness:

[root@master01 readiness]# cat pod-liveness-exec.yaml 
apiVersion: v1
kind: Pod
metadata:
  labels:
    test: readiness-exec
  name: liveness-exec
spec:
  containers:
  - name: liveness
    image: busybox
    args:
    - /bin/sh
    - -c
    - echo ok > /tmp/health; sleep 10; rm -rf /tmp/health; sleep 600
    livenessProbe:
      exec:
        command:
        - cat
        - /tmp/health
      initialDelaySeconds: 15
      timeoutSeconds: 1

[root@master01 readiness]# cat pod-liveness-http.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: pod-liveness-http
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80
    livenessProbe:
      httpGet:
        path: /_status/healthz
        port: 80
      initialDelaySeconds: 30
      timeoutSeconds: 1
[root@master01 readiness]# cat pod-liveness-tcp.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: pod-liveness-tcp
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80
    livenessProbe:
      tcpSocket:
        port: 80
      initialDelaySeconds: 30
      timeoutSeconds: 1

5)imagePullPolicy

三个选择Always、Never、IfNotPresent,每次启动时检查和更新(从registery)images的策略, # Always,每次都检查 # Never,每次都不检查(不管本地是否有) # IfNotPresent,如果本地有就不检查,如果没有就拉取

6)资源管理

[root@master01 resources]# cat tomcat.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: volume-pod
spec:
  containers:
  - name: tomcat
    image: tomcat
    ports:
    - containerPort: 8080
    volumeMounts:
    - name: app-logs
      mountPath: /usr/local/tomcat/logs
    resources:
      limits:
        cpu: 0.1
        memory: 100Mi
  - name: busybox
    image: busybox
    command: ["sh", "-c", "tail -f /logs/catalina*.log"]
    volumeMounts:
    - name: app-logs
      mountPath: /logs
  volumes:
  - name: app-logs
    emptyDir: {}
[root@master01 resources]# cat nginx.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80        
      hostPort: 80        
    resources:
      requests:
        cpu: 0.01
        memory: 1Mi
      limits:
        cpu: 0.5
        memory: 10Mi
• r equests
• limits
• yum -y install httpd -tools
• ab -c 500 -n 20000 http://172.20.2.23:8080/index.html

# vim /etc/sysctl.conf 

net.ipv4.tcp_syncookies = 0

# sysctl -p

7)生命周期管理

• postStart : # 容器运行之前运行的任务
• preStop :# 容器关闭之前运行的任务

[root@master01 lifecycle]# cat nginx-postStart-exec.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80        
    lifecycle:
      postStart:
       exec:
         command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]

[root@master01 lifecycle]# cat nginx-preStop-exec.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80        
    lifecycle:
      preStop:
       exec:
         command: ["/usr/sbin/nginx","-s","quit"]
[root@master01 lifecycle]# cat nginx-preStop-httpGet.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80        
    lifecycle:
      preStop:
        httpGet:
          host: 192.168.4.170
          path: api/v2/devops/pkg/upload_hooks
          port: 8090

8)Init Container

[root@master01 initContainers]# cat init.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container
    image: busybox
    command: ['sh', '-c', 'echo The app is running! && sleep 3600']
  initContainers:
  - name: init-myservice
    image: busybox
    command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
  - name: init-mydb
    image: busybox
    command: ['sh', '-c', 'until nslookup mydb; do echo waiting for mydb; sleep 2; done;']

[root@master01 initContainers]# cat service.yaml 
kind: Service
apiVersion: v1
metadata:
  name: myservice
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9376
---
kind: Service
apiVersion: v1
metadata:
  name: mydb
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9377

9)nodeSelector

[root@master01 nodeSelector]# cat nginx.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  nodeSelector:
    zone: node1
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80        
      hostPort: 80

10)affinity

•podAffinity

•nodeAffinity

[root@master01 affinity]# cat node-affinity.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: with-node-affinity
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: kubernetes.io/e2e-az-name
            operator: In
            values:
            - e2e-az1
            - e2e-az2
      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 1
        preference:
          matchExpressions:
          - key: type
            operator: In
            values:
            - ssd
  containers:
  - name: with-node-affinity
    image: nginx
    ports:
    - containerPort: 80 
[root@master01 podAffinity]# cat ./*
apiVersion: v1
kind: Pod
metadata:
  name: with-anti-affinity
spec:
  affinity:
    podAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchExpressions:
          - key: security
            operator: In
            values:
            - S1
        topologyKey: "kubernetes.io/hostname"
    podAntiAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 100
        podAffinityTerm:
          labelSelector:
            matchExpressions:
            - key: security
              operator: In
              values:
              - S2
          topologyKey: kubernetes.io/hostname
  containers:
  - name: with-anti-affinity
    image: nginx
apiVersion: v1
kind: Pod
metadata:
  name: pod-flag-s2
  labels:
    security: "S2"
    app: "nginx"
spec:
  containers:
  - name: nginx
    image: nginx
apiVersion: v1
kind: Pod
metadata:
  name: pod-flag-s1
  labels:
    security: "S1"
    app: "nginx"
spec:
  containers:
  - name: nginx
    image: nginx
apiVersion: v1
kind: Pod
metadata:
  name: pod-affinity
spec:
  affinity:
    podAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchExpressions:
          - key: security
            operator: In
            values:
            - S1
        topologyKey: kubernetes.io/hostname
  containers:
  - name: with-pod-affinity
    image: nginx

11)activeDeadlineSeconds

[root@master01 activeDeadlineSeconds]# cat nginx.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  activeDeadlineSeconds: 30
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80        
      hostPort: 80

12)dnsConfig

[root@master01 dnsConfig]# cat dns-example.yaml 
apiVersion: v1
kind: Pod
metadata:
  namespace: default
  name: dns-example
spec:
  containers:
    - name: test
      image: busybox
      args:
        - "sh"
        - "-c"
        - "sleep 3600"  
  dnsPolicy: "None"
  dnsConfig:
    nameservers:
      - 114.114.115.115
    searches:
      - ns1.svc.cluster.local
      - my.dns.search.suffix
    options:
      - name: ndots
        value: "2"
      - name: edns0

13)dnsPolicy

•None

设置dnsConfig

•ClusterFirst

•ClusterFirstWithHostNet

•Default

[root@master01 dnsPolicy]# cat dns-policy-default.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: dns-example
spec:
  containers:
    - name: test
      image: busybox
      args:
        - "sh"
        - "-c"
        - "sleep 3600"  
  dnsPolicy: "Default"
[root@master01 dnsPolicy]# cat dns-policy-hostNetwork.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: dns-example
spec:
  containers:
    - name: test
      image: busybox
      args:
        - "sh"
        - "-c"
        - "sleep 3600"  
  dnsPolicy: "ClusterFirstWithHostNet"
  hostNetwork: true
14) ephemeralContainers
[root@master01 ephemeralContainers]# cat ephemeral.json 
{
    "apiVersion": "v1",
    "kind": "EphemeralContainers",
    "metadata": {
            "name": "nginx"
    },
    "ephemeralContainers": [{
        "command": [
            "bash"
        ],
        "image": "shoganator/rpi-alpine-tools",
        "imagePullPolicy": "Always",
        "name": "diagtools",
        "stdin": true,
        "tty": true,
        "terminationMessagePolicy": "File"
    }]
}
• kubectl -n default replace --raw / api /v1/namespaces/default/pods/ nginx / ephemeralcontainers -f ./ ephemeral.json
15)hostalias
[root@master01 hostalias]# cat hostalias.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: hostaliases-pod
spec:
  restartPolicy: Never
  hostAliases:
  - ip: "127.0.0.1"
    hostnames:
    - "foo.local"
    - "bar.local"
  - ip: "10.1.2.3"
    hostnames:
    - "foo.remote"
    - "bar.remote"
  containers:
  - name: cat-hosts
    image: nginx 
    command:
    - cat
    args:
    - "/etc/hosts"

16)hostname

[root@master01 hostname]# cat hostname.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: hostname-pod
spec:
  restartPolicy: Never
  hostname: mark
  containers:
  - name: cat-hosts
    image: nginx 
    command:
    - hostname

17)nodeName

[root@master01 nodename]# cat nodename.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: nodename-pod
spec:
  restartPolicy: Never
  nodeName: 192.168.198.156
  containers:
  - name: cat-hosts
    image: nginx

18)preemptionPolicy

[root@master01 preemptionPolicy]# cat preemption.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: preemption-pod
spec:
  restartPolicy: Never
  preemptionPolicy: PreemptLowerPriority
  containers:
  - name: cat-hosts
    image: nginx 

19)priority

[root@master01 priority]# cat priority.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: priority-pod
spec:
  restartPolicy: Never
  preemptionPolicy: PreemptLowerPriority
  priority: 1000
  containers:
  - name: cat-hosts
    image: nginx 

20)priorityClassName

[root@master01 priorityClass]# cat priorityClass.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: priorityclass-pod
spec:
  restartPolicy: Never
  priorityClassName: high-priority
  containers:
  - name: cat-hosts
    image: nginx



[root@master01 priorityClass]# cat high-priority.yaml 
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
  name: high-priority
value: 1000000
globalDefault: false
description: "This priority class should be used for XYZ service pods only."

21)readinessGates

[root@master01 readinessGates]# cat nginx.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  readinessGates:
  - conditionType: "www.example.com/feature-1"
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80        
      hostPort: 80

22)Security Context

•Container-level Security Context:仅应用到指定的容器

•Pod-level Security Context:应用到Pod内所有容器以及Volume

•Pod Security Policies(PSP):应用到集群内部所有Pod以及Volume

[root@master01 podSecurityContext]# cat ./*
apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo-10
spec:
  securityContext:
    sysctls:
    - name: kernel.shm_rmid_forced
      value: "0"
  containers:
  - name: sec-ctx-4
    image: busybox
    args:
    - "sh"
    - "-c"
    - "sleep 36000"  
apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo-1
spec:
  securityContext:
    runAsUser: 1000
    fsGroup: 2000
  volumes:
  - name: sec-ctx-vol
    emptyDir: {}
  containers:
  - name: sec-ctx-demo
    image: busybox
    args:
    - "sh"
    -  "-c"
    -  "sleep 36000"
    securityContext:
      allowPrivilegeEscalation: false
apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo-2
spec:
  securityContext:
    runAsUser: 1000
  containers:
  - name: sec-ctx-demo-2
    image: busybox
    args:
    - "sh"
    - "-c"
    - "sleep 36000"
    securityContext:
      runAsUser: 2000
      allowPrivilegeEscalation: false
apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo-3
spec:
  containers:
  - name: sec-ctx-4
    image: busybox
    args:
    - "sh"
    - "-c"
    - "sleep 36000"
    securityContext:
      privileged: true
apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo-4-1
spec:
  containers:
  - name: sec-ctx-4
    image: busybox
    args:
    - "sh"
    - "-c"
    - "sleep 36000"
    securityContext:
      capabilities:
        add: ["NET_ADMIN", "SYS_TIME"]
apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo-5
spec:
  securityContext:
    runAsUser: 1000
    runAsGroup: 1000
  containers:
  - name: sec-ctx-4
    image: busybox
    args:
    - "sh"
    - "-c"
    - "sleep 36000"
    securityContext:
      capabilities:
        add: ["NET_ADMIN", "SYS_TIME"]
apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo-6
spec:
  securityContext:
    runAsNonRoot: true
  containers:
  - name: sec-ctx-4
    image: busybox
    args:
    - "sh"
    - "-c"
    - "sleep 36000"
    securityContext:
      capabilities:
        add: ["NET_ADMIN", "SYS_TIME"]
apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo-7
spec:
  securityContext:
    fsGroup: 1234
    supplementalGroups: [5678]
    seLinuxOptions:
      level: "s0:c123,c456"
  containers:
  - name: sec-ctx-4
    image: busybox
    args:
    - "sh"
    - "-c"
    - "sleep 36000"
apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo-8
spec:
  containers:
  - name: sec-ctx-4
    image: busybox
    args:
    - "sh"
    - "-c"
    - "sleep 36000"  
    securityContext:
      capabilities:
        drop:
        - NET_RAW
        - CHOWN
apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo-9
spec:
  securityContext:
    sysctls:
    - name: net.ipv4.ip_forward
      value: "1"
  containers:
  - name: sec-ctx-4
    image: busybox
    args:
    - "sh"
    - "-c"
    - "sleep 36000" 

23)serviceAccountName

[root@master01 serviceAccountName]# cat nginx.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  serviceAccountName: default
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80        
      hostPort: 80 

24)subdomain

[root@master01 subdomain]# cat ./*
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: nginx-0
spec:
  hostname: mark
  subdomain: com
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80        
      hostPort: 80  

25)terminationGracePeriodSeconds

[root@master01 terminationGracePeriodSeconds]# cat nginx.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  terminationGracePeriodSeconds: 0
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80        
      hostPort: 80 

26)tolerations

• Taints 和 Tolerations
• taint 定义在 node 上,排斥 pod
• toleration 定义在 pod 中, 容忍 taint

kubectl taint nodes node1 key=value:NoSchedule

kubectl taint nodes node1 key:NoSchedule-

Affect:

NoSchedule

NoExecute

[root@master01 tolerations]# cat nginx.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    env: test
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  tolerations:
  - key: "example-key"
    operator: "Exists"
    effect: "NoSchedule"

【kubernetes】关于k8s集群的污点、容忍、驱逐以及k8s集群故障排查思路 节点亲和性,是Pod的一种属性(偏好或硬性要求),它使Pod被吸引到一类特定的节点。Taint 则相反,它使节点能够排斥一类特定的 Pod。Taint 和 Toleration 相互配合,可以用来避免 Pod 被分配到不合适的节点上。每个节点上都可以应用一个或多个 taint ,这表示对于那些不能容忍这些 taint 的 Pod,是不会被该节点接受的。如果将 toleration 应用于 Pod 上,则表示这些 Pod 可以(但不一定)被调度到具有匹配 taint 的节点上。 阅读详情

相关推荐

Kubernetes (K8S)讲解存储/网络/运维

本文是关于 K8S 的技术文章简介。首先是基本概念,包括 K8S 的定义、在容器编排领域的地位,以及 API Server 等核心组件功能。接着阐述资源对象,如 Pod 概念、生命周期,Deployment、StatefulSet、DaemonSet 的区别与应用场景,还有 Service 类型与作用。然后是存储部分,涵盖存储卷类型及 PV 和 PVC 的关系与原理。网络方面涉及 K8S 网络模型原理和 CNI 插件。最后是运维与监控,包括 K8S 集群监控方法和集群升级回滚的流程及注意事项。

J老熊 2159

k8s教程(service篇)-pod的dns域名

pod dns 域名概念及设置

阿甘兄 4201

全局特征描述子 CVFH (Clustered Viewpoint Feature Histogram) 原理

特性VFHCVFH处理对象整个物体点云物体点云被分割后的稳定表面块(簇)对遮挡的鲁棒性弱。遮挡会破坏全局形状,导致描述子失效。极强。只依赖于稳定存在的部分。描述子维度263 维308 维 (263 + 45 SC)输出数量一个物体产生1 个描述子一个物体可能产生多个签名计算复杂度相对较低较高(需先聚类)主要应用场景完整、分割良好的物体存在遮挡、背景杂波的不完整物体。

weixin_37079656的博客 620

k8s-Pod域名学习总结

默认使用ip的方式,不利于正式的生产环境。(Pod的切换可能会导致IP的变化)可以在Pod yaml配置中设置hostname字段定义容器环境的主机名, 并设置subdomain字段定义容器环境的子域名。spec:hostname: 主机名称subdomain: 子域名[hostname]yaml中配置的hostnameyaml中配置的subdomain为Pod所在的命名空间默认为例如k8s集群default命名空间中有如下pod: order-service-pod此时pod域名为。

liuyij3430448的博客 3871

CTF全能工具箱ProV2:集成AI与94GB离线资源库,打造无网环境下的智能解题流水线

CTF全能工具箱ProV2是一款专为线下CTF比赛设计的All-in-One离线解决方案。它集成了94GB的庞大离线资源库,涵盖Web、逆向、Pwn等全方向工具链与知识库,并创新性地内置了本地AI大模型,可在断网环境下提供智能解题辅助,实现从信息收集到漏洞利用的智能流水线作业,极大提升比赛效率。

weixin_29240343的博客 425

从零构建AI辅助逆向分析环境:JADX-MCP与LLM的实战集成指南

本文详细介绍了如何从零构建AI辅助逆向分析环境,通过集成JADX-MCP与LLM技术,提升Android应用逆向工程效率。文章涵盖环境搭建、插件安装、MCP服务器配置及实战案例分析,帮助开发者快速掌握AI在代码理解、漏洞挖掘和自动化文档生成中的应用。

weixin_27875131的博客 841

k8s CoreDns详解

服务发现是 K8s 的一项很重要的功能。K8s 的服务发现有两种方式,一种是将 svc 的 ClusterIP 以环境变量的方式注入到 pod 中;一种就是 DNS,从 1.13 版本开始,coreDNS 就取代了 kube dns 成为了内置的 DNS 服务器。CoreDNS的kubernetes插件的具体实现遵循k8s官方提供的标准指南,这也是它能够替代kube-dns成为kubebernetes中默认的DNS的重要原因。

魏志标的博客 5602

TwinCAT3与Matlab Simulink集成开发:如何快速生成和调试TcCOM模块

本文详细介绍了如何将TwinCAT3与Matlab Simulink进行深度集成,实现从控制算法模型到实时TcCOM模块的高效开发。通过环境搭建、模型配置、代码生成、系统集成与调试的完整流程,工程师可以快速将Simulink算法部署到倍福实时控制平台,大幅缩短开发周期并提升可靠性。

ik67890123的博客 224

CoreDNS系列:Kubernetes内部域名解析原理、弊端及优化方

Kubernetes 中的 DNS 本篇,是 CoreDNS 的前篇之一,后续会着重介绍 CoreDNS,但是步步深入讲 CoreDNS,讲一下 Kubernetes,以及 kubedns 有一定的必要,所以,就有了 CoreDNS 系列,本篇主要尽可能详尽的说明 Kubernetes 的DNS解析原理,以及 Kubernetes 集群中 DNS 解析目前存在的弊端和优化方式。 在 Kubernetes 中,服务发现有几种方式: ①:基于环境变量的方式 ②:基于内部域名的方式 基本上,使用环境变量的方

开开的博客 1988

基于Matlab/Simulink的三相并网逆变器dq阻抗扫频仿真与理论建模实践指南

本文详细介绍了基于Matlab/Simulink的三相并网逆变器dq阻抗扫频仿真与理论建模实践方法。通过搭建仿真模型、设计扰动注入策略和FFT分析,精确提取阻抗特性,有效预测系统稳定性,为新能源并网系统设计提供可靠指导。

gold的博客 778

3.7 改造模型:为GPT添加一个分类头(Classification Head)

本文介绍如何改造GPT模型用于文本分类任务。主要内容包括: 分类头设计思路:GPT作为语言模型需要添加分类头才能适应分类任务,类似于为语言大师添加裁判功能。 序列表示选择策略: 分析三种常见方法(CLS标记、平均池化、最后词元表示) 推荐使用最后词元表示,因其最能反映GPT的单向信息流特性 代码实现: 构建GPT2ForSequenceClassification类 包含预训练GPT主体和线性分类头 使用attention_mask智能定位句子结尾 通过高级索引提取最后词元特征 该方法通过简单改造使GPT模

yonggeit的博客 2973

关于k8s解析不到pod dns信息

关于k8s解析不到pod dns信息 这其实是自己对k8s的dns解析不理解,service和pod在k8s中的dns记录形式不同,service是通过名字的,pod是用ip的(192-168-0-1的形式)。 busybox:1.28,latest版本不行 apiVersion: v1 kind: Pod metadata: name: busybox1 spec: contain...

longtails的博客 1万+

流体动力学仿真软件:Star-CCM+_(1).Star-CCM+基础及入门

Star-CCM+的用户界面(UI)分为多个部分,包括菜单栏、工具栏、工作区、视图窗口和控制台。菜单栏包含文件、编辑、视图、工具等常用菜单。例如,“File”菜单可以用于打开、保存和退出项目。工具栏提供常用的工具按钮,如新建项目、打开项目、保存项目等。也可以自定义工具栏,添加常用的功能按钮。工作区显示当前项目的结构和各个对象。可以通过拖拽方式组织和管理项目中的各个部分。视图窗口显示几何模型、网格、结果等。可以通过不同的视图模式查看和分析数据。控制台显示软件的运行日志和输出信息。

kkchenjj的博客 1205

Kubernetes中Pod资源进阶底层讲解

每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类。

埃泽漫笔 712

2025年12月GESP真题及题解(C++一级): 小杨的爱心快递

2025年12月GESP真题及题解(C++一级): 小杨的爱心快递

王老师青少年编程 1659

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Kubernetes(k8s)的Pod资源清单spec.containers属性详细讲解

目录1. 概述2. Pod的基本配置3. 镜像拉取策略4. 启动命令5. 环境变量 1. 概述 通过命令kubectl explain pod.spec.containers查询,将重要结果整理如下: containers: <[]Object> # 数组,代表可以有多个容器: name: <string> # 容器名称 image: <string> # 容器需要的镜像地址 ima

Bulut0907 4727

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Kubernetes(k8s)的Pod资源清单生命周期Lifecycle相关属性详细讲解

目录1. 概述2. Pod的创建和删除过程2.1 Pod的创建过程2.2 Pod的删除过程3. init container初始化容器 1. 概述 Pod对象从创建到删除的这段时间范围称为Pod的生命周期,主要包含下面的过程: Pod创建 运行初始化容器(init container) 运行主容器(main container) 容器启动后钩子(post start) 容器的存活性探测(liveness probe)、就绪性探测(readiness probe) 容器删除前钩子(pre stop)

Bulut0907 3554

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Kubernetes(k8s)的Pod资源清单调度Schedule相关属性详细讲解

目录1. 概述2. 定向调度2.1 概述2.2 nodeName2.3 nodeSelector3. 亲和性调度(Affinity)3.1 概述3.2 nodeAffinity3.2.1 requiredDuringSchedulingIgnoredDuringExecution3.2.2 preferredDuringSchedulingIgnoredDuringExecution3.3 podAffinity3.3.1 requiredDuringSchedulingIgnoredDuringExecu

Bulut0907 1318

【k8s】资源限制管理:Namespace、Deployment与Pod的实践

本文深入探讨了Kubernetes(K8s)中资源限制管理的关键实践,聚焦于Namespace、Deployment与Pod这三个核心组件。首先,文章介绍了Namespace作为K8s中资源隔离的基本单位,如何帮助开发者和管理员在多租户环境中实现资源的有效划分和隔离,确保不同团队或项目的资源使用互不干扰。 接着,文章详细阐述了Deployment在资源管理和应用部署中的重要作用。通过配置Deployment,用户可以精确控制Pod的副本数量、滚动更新策略以及资源请求和限制,从而实现对应用性能和稳定性的精细

博客虽小,世界尽在其中 3585

从零开始的云计算生活——第四十三天,激流勇进,kubernetes模块之Pod资源对象

Pod是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。Pod(就像在鲸鱼荚或者豌豆荚中)是一组(一个或多个) 容器;这些容器共享存储、网络、以及怎样运行这些容器的声明。Pod 中的容器总是并置(colocated)的并且一同调度,在共享的上下文中运行。Pod 所建模的是特定于应用的 “逻辑主机”,其中包含一个或多个应用容器, 这些容器相对紧密地耦合在一起。在非云环境中,在相同的物理机或虚拟机上运行的应用类似于在同一逻辑主机上运行的云应用。

Britz_Kevin的博客 1016

K8S学习之通过yaml文件操作Pod

整理在kubernetes k8s中如何通过yaml文件创建pod,以及pod常用字段详解

CharlesYan的博客 1847

5、pod 详解 (kubernetes)

kubernetes 中其他大多数组件都是围绕着 Pod 来进行支撑和扩展 Pod 功能的,例如,用于管理 Pod 运行的 StatefulSet 和 Deployment 等控制器对象,用于暴露 Pod 应用的 Service 和 Ingress 对象,为 Pod 提供存储的 PersistentVolume 存储资源对象等。2、Pod 里的多个应用容器共享 Pause 容器的 IP,共享 Pause 容器挂载的 Volume ,这样简化了应用容器之间的通信问题,也解决了容器之间的文件共享问题。

m0_67475830的博客 1535

K8s 基础资源讲解(Namespace, Pod, Label, Deployment, Service)

一、Namespace Namespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 默认情况下,kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中,可能不想让两个Pod之间进行互相的访问,那此时就可以将两个Pod划分到不同的namespace下。kubernetes通过将集群内部的资源分配到不同的Namespace中,可以形成逻辑上的"组",以方便不同的组的资源进行隔离使用和管理。 可以通过kubernetes的授权

小毕超博客 5180

k8s资源清单和pod生命周期

文章目录k8s中的资源名称空间级别资源清单常用字段说明必须的字段spec 主要对象额外的参数项创建 Pod 的资源模板 实例测试启动 Pod查看 pod 是否启动成功启动失败查看详情删除pod,创建pod容器生命周期Init容器作用Init容器使用特殊说明探针探针就绪检测探针存活检测启动退出动作重启策略状态情况 k8s中的资源 K8s中所有的内容都抽象为资源,资 源实例化之后,叫做对象 名称空间级别 工作负载型资源( workload ): Pod、 ReplicaSet、 Deployment、 S

BushRo 1274

Kubernetes:k8s组件

访问的方式是通过kube-proxy 匹配。

qq_44239779的博客 867

涨薪技术|Kubernetes(k8s)之Pod端口设置及资源配额

也就是我们 Pod 在进行调度的时候,可以对调度的资源进行限制,例如我们限制 Pod 调度时使用的资源是 2C4G,那么在调度对应的 node 节点时,只会占用对应的资源,对于不满足资源的节点,将不会进行调度。port:是k8s集群内部访问service的端口,即通过clusterIP: port可以访问到某个service,也就是说,port是集群内,service之间的访问;requests :用于设置容器需要的最小资源,如果环境资源不够,容器将无法启动可以通过上面两个选项设置资源的上下限;

m0_60889254的博客 884
上一篇: k8s资源之-configmap
下一篇: k8s资源之service
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hxpjava1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值