首页 > 其他分享 >6.Pod的资源配置模板

6.Pod的资源配置模板

时间:2023-07-30 16:31:40浏览次数:70  
标签:容器 name 资源配置 image demoapp Pod pod 模板

资源范式:五个一级字段

    kind:<String>指明对象的类型(资源类型),类型标签
    apiVersion:<String>指明对象的类型(资源类型),类型隶属的API群组
    metadata:<Object>对象元数据,名称/标签/注解和隶属的名称空间
    spec:<Object>对象数据,期望状态
    status:<Object>资源的实际状态,由系统组件自行负责维护

系统默认名称空间

default           默认使用名称空间
kube-node-lease   
kube-public       
kube-system       系统级名称空间

service类型:

cludterIP:仅支持集群内部的客户访问
nodepoet:支持集群内部的客户访问,同时支持集群外部的客户端通过任何一个的节点IP地址进行访问,但要使用特定端口,分配的范围:30000-32768

创建service:
[root@K8s-master01 ~]#kubectl create service nodeport demoapp --tcp=8080:80 -n demo
service/demoapp created

查看该名称空间下的pod明细信息,可以看到外部访问端口号:
[root@k8s-master02 ~]#kubectl get svc -n demo
NAME      TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
demoapp   NodePort   10.97.101.72   <none>        80:31994/TCP   11s

在集群外部访问节点IP和外部访问端口,可以访问到pod:
http://10.0.0.101:31994/
iKubernetes demoapp v1.0 !! ClientIP: 10.244.1.0, ServerName: demoapp-55c5f88dcb-848mv, ServerIP: 10.244.3.2!
#此时,通过所有master节点IP加端口,都可以访问到,并且还会自动做负载均衡,轮询访问node节点

Pod的资源配置

下载镜像策略

imagePullPolicy:
  1.IfnotPresent:在镜像标签不是latest时,当前节点存在相关image时,就直接使用,否则,就去pull image;
  2.Always:无论当前节点是否存在相关的image,都要执行pull image
  3.Never:无论当前节点是否存在相关的image,都不执行pull image

向容器传递环境变量

[root@k8s-master02 chapter4]#vim pod-using-env.yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod-using-env
  namespace: default
spec:
  containers:
  - name: demo
    image: ikubernetes/demoapp:v1.0
    imagePullPolicy: IfNotPresent
    env:
    - name: HOST
      value: "127.0.0.1"
    - name: PORT
      value: "8080"

查询参数传递成功:
[root@k8s-master02 chapter4]#kubectl exec pod-using-env -- netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       
tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN  

查看pod运行到哪个工作节点:
[root@k8s-master02 chapter4]#kubectl get pods -o wide

重启策略

Pod的重启策略:决定了容器终止后是否应该重启
◼ Always:无论何种exit code,都要重启容器
◼ OnFailure:仅在exit code为非0值(即错误退出)时才重启容器
◼ Never:无论何种exit code,都不重启容器

应用监控Pod的健康状态监测机制

Pod支持的监测类型
◼ startup Probe
◼ liveness Probe
◼ readiness Probe
监测机制
◼ Exec Action:根据指定命令的结果状态码判定
◼ TcpSocket Action:根据相应TCP套接字连接建立状态判定
◼ HTTPGet Action:根据指定https/http服务URL的响应结果判定
配置参数
◼ initialDelaySeconds
◼ periodSeconds
◼ timeoutSeconds
◼ successThreshold
◼ failureThreshold

安全上下文

 Pod及容器的安全上下文
◼ 一组用来决定容器是如何创建和运行的约束条件,这些条件代表创建和运行容器时使用的运行时参数
◼ 给了用户为Pod或容器定义特权和访问控制机制
 Pod和容器的安全上下文设置主要包括以下几个方面
◼ 自主访问控制DAC
◼ 容器进程运行身份及资源访问权限
◼ Linux Capabilities
◼ seccomp
◼ AppArmor
◼ SELinux
◼ Privilgegd Mode
◼ Privilege Escalation
 Kubernetes支持在Pod及容器级别分别使用安全上下文
 阿里云知行实验室上的实验:“理解及使用Security Context”

资源需求(requests)和限制(limits)

 资源需求和资源限制
◼ 资源需求(requests)
◆定义需要系统预留给该容器使用的资源最小可用值
◆容器运行时可能用不到这些额度的资源,但用到时必须确保有相应数量的资源可用
◆资源需求的定义会影响调度器的决策
◼ 资源限制(limits)
◆定义该容器可以申请使用的资源最大可用值,超出该额度的资源使用请求将被拒绝
◆该限制需要大于等于requests的值,但系统在其某项资源紧张时,会从容器那里回收其使用的超出其requests值的那部
分
 requests和limits定义在容器级别,主要围绕cpu、memory和hugepages三种资源
 阿里云知行实验室上的实验:“资源需求和资源限制”

资源配置模板

apiVersion: v1 
        kind: Pod 
        metadata: 
            name: 
            namespace:
            labels:
                key1: value1:
        spec: 
            containers:
            - name: 
              image:  
            - name: 
              image:
            - name: 
              image: 
              securityContext: {}
              startProbe: {}
              livenessProbe: {}
              readinessProbe: {}
              command: []string 
              args: []string
              resources: {}
                reuqests: {}
                    cpu: 100m 
                    memory: 512Mi
                limits: {}
              env: {}
              - name: 
                value: 
            imagePullPolicy:
            restartPolicy: 
            securityContext: {}

手动生成资源配置模板

[root@k8s-master01 ~]#kubectl run demoapp-pod-002 --image=ikebernetes/demoapp:v1.0 --restart=Never --port=80 --dry-run=client -o yaml > demoapp-pod-002.yaml
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: demoapp-pod-002
  name: demoapp-pod-002
spec:
  containers:
  - image: ikebernetes/demoapp:v1.0
    name: demoapp-pod-002
    ports:
    - containerPort: 80
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Never
status: {}

标签:容器,name,资源配置,image,demoapp,Pod,pod,模板
From: https://blog.51cto.com/lmm01/6901469

相关文章

  • 如何开发一套苹果cms前端模板
    本文运用了苹果cms官网的模板开发教程,开发了一套苹果cms的前端模板,感兴趣的同学可以去github下载使用。什么是模板模板是网站的主题外观,也被称为主题或皮肤。通过使用不同的模板,网站的前台可以以不同的样式展示。这就像人们的服装一样,人们打扮得漂亮会吸引人,同样地,一个好看的......
  • 【模板】数论基础:exGCD,exCRT,inverse,Lucas,BSGS,primitive root
    7.29数论WIP\(a\equivb\pmodp\Rightarrow\frac{a}{d}\equiv\frac{b}{d}\pmod{\frac{p}{d}},d=\gcd(a,b,p)\)。exGCD若\((a,b)=1\),则\(0\leqx<b\),\(ax\bmodb\)互不相同,有一个是\(1\)。证明:\(ax_1\equivax_2\pmodb\)则\((x_1-x_2)a|b\),因为......
  • linux驱动模板
     最基本#include<linux/module.h>//需要测试是否还需要其他头文件staticint__initled_init(void){}staticvoid__exitled_exit(void){}module_init(led_init);//驱动初始化module_exit(led_exit);//驱动退出MODULE_LICENSE......
  • 单调栈算法模板
    单调栈模板:单调栈模板:for(遍历这个数组)while(栈不为空&&栈顶元素<或者>当前元素) 栈顶元素出栈 更新结果 当前数据入栈例如单调递增的stack,python实现就是: stack=[] foriinrange(0,len(arr)): whilestackandstack[-1]>arr[i]: stack.po......
  • 【模板】三维偏序(陌上花开)
    P3810【模板】三维偏序(陌上花开)考虑CDQ分治。考虑简单情况。一维偏序,排序即可,复杂度\(O(n\logn)\)。二维偏序,排序后使用树状数组离散化后维护(参考逆序对,特点是已经将第一维排序过了)。二维偏序,排序后使用归并排序(参考逆序对,特点是已经将第一维排序过了)。考虑三维偏序,......
  • 学生个人网页设计作品 学生个人网页模板 简单个人主页成品 个人网页制作 HTML学生个人
    HTML网页作业期末学生结课大作业作品(HTML+CSS+JS),都是给学生定制的都符合学校或者学生考试期末作业的水平,都是div+css框架原创代码写的,有的有js,有的视频+音乐+flash的等元素的插入…2000多例HTML5期末考核大作业源码都可满足大学生网页大作业网页设计作业需求,喜欢的可以下载!网......
  • 微信公众号模板消息源码实现,打破服务号群发推送次数限制
    公众号服务号每个月只能群发推送四次文章,我们可以使用模板消息为公众号粉丝推送信息下面是使用golang实现的模板消息发送类库封装,轻松实现模板消息发送wechat.gopackagelibimport("github.com/silenceper/wechat/v2""github.com/silenceper/wechat/v2/cache"......
  • 如何对接微信公众号模板消息
    微信公众号的模板消息进行了更新,与之前比有了不少的变化,以前的一些类目也没有了,历史模板还是可以继续使用的,下面是新版模板消息的使用步骤选择服务类目前往【广告与服务】【模板消息】【模板库】【类目模板库】点击服务类目的详情,选择一个自己的服务类目比如我选择的是:商业服务......
  • RMQ模板
    template<calssT>structRMQ{intn;vector<vector<T>>f;vector<int>log_2;vector<T>a;function<T(T,T)>cmp;RMQ(){}RMQ(intn,function<T(T,T)>op):n(n),f(n+5,ve......
  • DINIC算法模板
    //定义一个名为F的网络流:NetWorkFlowF(n,S,T);//复杂度V^2*EstructNetWorkFlow{structFlownode{intvi,id;intwi;};intS,T;constintinf=0x3f3f3f3f;std::vector<int>rk,cur;std::vector<std::vector<Flown......