当前位置: 首页 > news >正文

旅游公共信息服务网站建设及服务质量标准网站开发多钱

旅游公共信息服务网站建设及服务质量标准,网站开发多钱,牛商网做的网站怎么样,制作微信公众号的网站Kubernetes之深入理解PodPod相关概念Pod详细配置清单Pod核心配置Pod基本配置1. 创建yaml文件2. 创建namespace并根据yaml文件创建资源3. 查看namespace下的pod列表以及pod的详细信息Pod中多个容器的名称和端口号不能相同Pod镜像拉取策略Pod环境变量Pod端口相关设置Pod资源相关配… Kubernetes之深入理解PodPod相关概念Pod详细配置清单Pod核心配置Pod基本配置1. 创建yaml文件2. 创建namespace并根据yaml文件创建资源3. 查看namespace下的pod列表以及pod的详细信息Pod中多个容器的名称和端口号不能相同Pod镜像拉取策略Pod环境变量Pod端口相关设置Pod资源相关配置Pod启动命令配置Pod相关概念 Pod实际上是容器的集合是k8s中最小调度单元一个Pod里面可以有n多个不同的容器一个Pod内的容器之间共享相同的Pod Ip网络Pause容器这是每个Pod都会有的一个根容器可以在根容器上设置ip地址其它容器都共享相同Ip (Pod IP)以实现Pod内部的网路通信Pod内部的通讯Pod的之间的通讯采用虚拟二层网络技术来实现。 Pod详细配置清单 apiVersion: v1 #必填版本号例如v1 kind: Pod #必填资源类型例如Pod、service、Deployment metadata: #必填元数据name: pod-name #必填Pod名称namespace: namespace-name #Pod所属的命名空间 默认为defaultlabels: #自定义标签列表- name: v1 spec: #必填Pod中容器的详细定义containers: #必填Pod中容器列表- name: container-name #必填容器名称image: nginx:1.7.9 #必填容器的镜像名称imagePullPolicy: [ Always|Never|IfNotPresent] #获取镜像的策略command: [string] #容器的启动命令列表如不指定使用打包时使用的启动命令args: [string] #容器的启动命令参数列表workingDir: string #容器的工作目录volumeMounts: #挂载到容器内部的存储卷配置- name: string #引用Pod定义的共享存储卷的名称需用volumes[ ]部分定义的卷名mountPath: string #存储卷在容器内mount的绝对路径应少于512字符read0nly: boolean #是否为只读模式ports: #需要暴露的端口库号列表- name: string #端口的名称containerPort: int #容器需要监听的端口号hostPort: int #容器所在主机需要监听的端口号默认与Container相同protocol: string #端口协议支持TCP和UDP默认TCPenv: #容器运行前需设置的环境变量列表- name: string #环境变量名称value: string #环境变量的值resources: #资源限制和请求的设置limits: #资源限制的设置cpu: string #Cpu的限制单位为core数将用于docker run --cpu-shares参数memory: string #内存限制单位可以为Mib/Gib,将用于docker run --memory参数requests: #资源请求的设置cpu: string #Cpu请求容器启动的初始可用数量memory: string #内存请求容器启动时的初始可用数量lifecycle: #生命周期钩子postStart: #容器启动后立即执行此钩子如果执行失败会根据重启策略进行重启preStop: #容器终止前执行此钩子无论结果如何容器都会终止livenessProbe: #对Pod内各容器健康检查的设置当探测无响应几次后将自动重启该容器exec: #对Pod容器内检查方式设置为exec方式command: [string] #exec方式需要制定的命令或脚本httpGet: #对Pod内容器健康检查方法设置为HttpGet,需要制定path、portpath: stringport: numberhost: stringscheme: stringHttpHeaders:- name: stringvalue: stringtcpSocket: #对Pod内容器健康检查方式设置为tcpSocket方式port: numberapiVersion: v1 # 必选API的版本号 kind: Pod # 必选类型Pod metadata: # 必选元数据即基础信息 name: nginx # 必选符合RFC 1035规范的Pod名称 namespace: web-testing # 可选不指定默认为defaultPod所在的命名空间 labels: # 可选标签选择器一般用于Selector - app: nginx annotations: # 可选注释列表 - app: nginx spec: # 必选用于定义容器的详细信息 containers: # 必选容器列表 name: nginx # 必选符合RFC 1035规范的容器名称 image: nginx:v1 # 必选容器所用的镜像地址 imagePullPolicy: Always # 可选镜像拉取策略 镜像拉取策略分三种 Always 不管镜像存不存在本地都拉取默认 Nerver 不管镜像存不存在本地都不拉取 IfNotpresent 本地有镜像不拉取没有就拉取 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: 1024MiB requests: # 启动所需的资源 cpu: 100m memory: 512MiB readinessProbe: # 可选容器状态检查 httpGet: # 检测方式 path: / # 检查路径 port: 80 # 监控端口 timeoutSeconds: 2 # 超时时间 initialDelaySeconds: 60 # 初始化时间 livenessProbe: # 可选监控状态检查 exec: # 检测方式 command: - cat - /health httpGet: # 检测方式 path: /_health port: 8080 httpHeaders: - name: end-user value: jason tcpSocket: # 检测方式 port: 80 initialDelaySeconds: 60 # 初始化时间 timeoutSeconds: 2 # 超时时间 periodSeconds: 5 # 检测间隔 successThreshold: 2 # 检查成功为2次表示就绪 failureThreshold: 1 # 检测失败1次表示未就绪 securityContext: # 可选限制容器不可信的行为 provoleged: false restartPolicy: Always # 可选默认为Always nodeSelector: # 可选指定Node节点 region: subnet7 imagePullSecrets: # 可选拉取镜像使用的secret name: default-dockercfg-86258 hostNetwork: false # 可选是否为主机模式如是会占用主机端口 volumes: # 共享存储卷列表 name: webroot # 名称与上述对应 emptyDir: {} # 共享卷类型空 hostPath: # 共享卷类型本机目录 path: /etc/hosts secret: # 共享卷类型secret模式一般用于密码 secretName: default-token-tf2jp # 名称 defaultMode: 420 # 权限 configMap: # 一般用于配置文件 name: nginx-conf defaultMode: 420Pod核心配置 Pod基本配置 1. 创建yaml文件 文件名称pod.yaml apiVersion: v1 kind: Pod # 类型为pod metadata:name: nginx-podnamespace: bubble-devlabels:user: v1 # 标签值 spec:containers:- name: nginx # 容器1image: nginx:1.17.9- name: tomcat # 容器2image: tomcat:82. 创建namespace并根据yaml文件创建资源 kubectl create ns bubble-dev kubectl create -f pod.yaml3. 查看namespace下的pod列表以及pod的详细信息 kubectl get pods -n bubble-dev kubectl describe pods -n bubble-dev说明pod运行在192.168.102.160这台工作节点上 [rootmaster ~]# kubectl describe pods -n bubble-dev Name: nginx-pod Namespace: bubble-dev Priority: 0 Node: node1/192.168.102.160 Start Time: Thu, 12 Jan 2023 08:34:01 -0500 Labels: userv1 Annotations: none Status: Running IP: 172.17.0.2 IPs:IP: 172.17.0.2 Containers:nginx:Container ID: docker://53e89cea6f2dab821a4f274be8b6fa60e39cde65dd7ecd9d3786c2618f5be6dbImage: nginx:1.17.9Image ID: docker-pullable://nginxsha256:88ea86df324b03b3205cbf4ca0d999143656d0a3394675630e55e49044d38b50Port: noneHost Port: noneState: RunningStarted: Thu, 12 Jan 2023 08:34:03 -0500Ready: TrueRestart Count: 0Environment: noneMounts:/var/run/secrets/kubernetes.io/serviceaccount from default-token-lnn96 (ro)tomcat:Container ID: docker://bd2b47f17f18a5983dcb0e2c2da60a96bd016da8c2eb644b095430b1f9132884Image: tomcat:8Image ID: docker-pullable://tomcatsha256:421c2a2c73f3e339c787beaacde0f7bbc30bba957ec653d41a77d08144c6a028Port: noneHost Port: noneState: RunningStarted: Thu, 12 Jan 2023 08:34:58 -0500Ready: TrueRestart Count: 0Environment: noneMounts:/var/run/secrets/kubernetes.io/serviceaccount from default-token-lnn96 (ro) Conditions:Type StatusInitialized True Ready True ContainersReady True PodScheduled True Volumes:default-token-lnn96:Type: Secret (a volume populated by a Secret)SecretName: default-token-lnn96Optional: false QoS Class: BestEffort Node-Selectors: none Tolerations: node.kubernetes.io/not-ready:NoExecute for 300snode.kubernetes.io/unreachable:NoExecute for 300s Events:Type Reason Age From Message---- ------ ---- ---- -------Normal Scheduled 2m26s default-scheduler Successfully assigned bubble-dev/nginx-pod to node1Normal Pulled 2m25s kubelet, node1 Container image nginx:1.17.9 already present on machineNormal Created 2m25s kubelet, node1 Created container nginxNormal Started 2m24s kubelet, node1 Started container nginxNormal Pulling 2m24s kubelet, node1 Pulling image tomcat:8Normal Pulled 90s kubelet, node1 Successfully pulled image tomcat:8Normal Created 90s kubelet, node1 Created container tomcatNormal Started 89s kubelet, node1 Started container tomcatcurl 172.17.0.2 curl 172.17.0.2:8080Pod中多个容器的名称和端口号不能相同 名称不能相同 apiVersion: v1 kind: Pod # 类型为pod metadata:name: podnamespace: bubble-devlabels:user: v1 # 标签值 spec:containers:- name: nginx # 容器1image: nginx:1.17.9- name: nginx # 容器2image: nginx:1.17.9端口号不能相同 apiVersion: v1 kind: Pod # 类型为pod metadata:name: podnamespace: bubble-devlabels:user: v1 # 标签值 spec:containers:- name: nginx1 # 容器1image: nginx:1.17.9- name: nginx2 # 容器2image: nginx:1.17.9其中nginx2由于端口号被占用无法启动一直在重试启动 Pod镜像拉取策略 Always每次都是从远程仓库拉取镜像IfNotPresent如果本地有该镜像则使用本地如果本地没有该镜像则使用远程Never只使用本地镜像不去远程仓库拉取本地没有该镜像则会报错 yaml配置清单实例 apiVersion: v1 kind: Pod # 类型为pod metadata:name: pod-namenamespace: bubble-devlabels:user: v1 # 标签值 spec:containers:- name: nginx # 容器名称image: nginx:1.17.9imagePullPolicy: IfNotPresent # 用于设置镜像拉取策略Pod环境变量 apiVersion: v1 kind: Pod # 类型为pod metadata:name: pod-envnamespace: bubble-devlabels:user: v1 # 标签值 spec:containers:- name: nginx # 容器名称image: nginx:1.17.9env: # 设置环境变量列表- name: usernamevalue: honey- name: agevalue: 22进入容器 kubectl exec -it pod的名称 -n 命名空间 -c 容器名称 /bin/shkubectl exec -it pod-env -n bubble-dev -c nginx /bin/sh读取环境变量 echo $username echo $age退出容器 exitPod端口相关设置 name string # 端口的名称name在pod中是唯一的不允许重复 containerPort integer # 容器要暴露的端口 (0x65536) hostPort integer # 容器要映射到主机上的端口 hostIP string # 容器要映射到主机的IP(一般省略) protocol string # 端口协议必须是UDP、TCP或SCTP默认为“TCPapiVersion: v1 kind: Pod # 类型为pod metadata:name: pod-portnamespace: bubble-devlabels:user: v1 # 标签值 spec:containers:- name: nginx # 容器名称image: nginx:1.17.9ports: # 设置容器暴露的端口号列表- name: expose-portcontainerPort: 80protocol: TCPPod资源相关配置 可以通过资源配置Pod对应的cpu核数、内存配置等 limits限制容器运行时的最大占用资源当容器占用资源超过limits设置的值时会被终止并进行重启;requests用于设置限制容器需要的最小资源如果环境资源不够容器则将无法启动 cpu核心数 memory内存大小可以使用Gi、Mi、G、M等形式 资源不够无法启动案例 apiVersion: v1 kind: Pod # 类型为pod metadata:name: pod-resourcenamespace: bubble-devlabels:user: v1 # 标签值 spec:containers:- name: nginx # 容器名称image: nginx:1.17.9resources: # 资源配额limits: # 最大资源限制cpu: 2 # 限制CPU核心线程数memory: 10Gi # 内存限制requests: # 最小资源限制cpu: 1 # CPU限制单位是core数memory: 10Gi # 内存限制Pod启动命令配置 容器启动成功之后 可以执行一些脚本 apiVersion: v1 kind: Pod metadata:name: pod-command-testnamespace: bubble-dev spec:containers:- name: busyboximage: busybox:1.30查看pod信息busybox停止了 这是因为busybox容器启动后它会自动关闭我们可以通过启动命令写脚本让busybox一直在运行。 apiVersion: v1 kind: Pod metadata:name: pod-commandnamespace: bubble-dev spec:containers:- name: busyboximage: busybox:1.30command: [ /bin/sh,-c,while true;do sleep 3; done;]“/bin/sh”,“-c”使用sh执行命令 “while true;do sleep 3; done;”一直死循环为了避免cpu飙高的问题 休眠3s时间 可以发现busybox仍在运行。
http://www.hkea.cn/news/14333083/

相关文章:

  • 摄影培训网站建设最新办公室装修风格效果图
  • 特价网站建设费用hyein seo
  • wordpress 基础建站网站公告栏代码
  • 建设类似衣联网的网站大圣网站建设
  • unity3d转行网站开发广东省建设银行招聘网站
  • 做网站膜网站怎么做wordpress 有市场吗
  • 广西建设厅网站是什么网站建设培训教程
  • 手机端网站建设步骤编程软件是怎么做出来的
  • 建设网站的收费做黄金理财的网站
  • 网站优化关键词是怎么做的wordpress 后台登陆不进去
  • 如何评价伊利集团网站建设网站优化 代码优化
  • 温州网站升级水果网站建设方案书
  • 电商网站大连经典微网站
  • 随州网站建设有哪些hao123网址导航官网
  • 谈谈网站建设创新问题青岛网站设计建设
  • 没有收款接口网站怎么做收款旅游网站怎么设计
  • 网站设置点赞做外贸业务员需要什么条件
  • 景山网站建设公司wordpress批量插件
  • 东莞常平医院网站建设关键词优化排名工具
  • 网站建设网站制作哪个好网站建设要多长时间
  • 哪个地区网站建设好wordpress界面编排
  • 怎么查看网站是否做百度排名百度指数资讯指数是指什么
  • 河北省和城乡建设厅网站自己建网站服务器
  • 浏阳网站建设公司其中包括
  • 网站推广指标公司年会宣传软文
  • 网站模板编辑软件有个人做网站的
  • 免费网站备案号码自建网站h5
  • 网页设计及网站建设的相关概念怎么下载网站源码
  • 网站标题和描述优化网络推广的方法80种
  • 做素材网站赚钱吗网站建设 英语词汇