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

合肥建设网站公司怎么设置自己的网站

合肥建设网站公司,怎么设置自己的网站,ppt制作方法,做外贸网站进行销售 需要纳税吗1、pod概念介绍 Pod 是 kubernetes 基本调度单位。每个 Pod 中可以运 行一个或多个容器#xff0c;共享 Pod 的文件系统、IP 和网络等资源#xff0c;每个 Pod 只有一个 IP。 2、使用 yaml或json 文件创建 Pod 声明式文件方式创建 Pod#xff0c;支持 yaml 和 json 1共享 Pod 的文件系统、IP 和网络等资源每个 Pod 只有一个 IP。 2、使用 yaml或json 文件创建 Pod 声明式文件方式创建 Pod支持 yaml 和 json 1编辑yaml文件 # 使用yaml文件创建节点[rootk8s-master ~]# cd pods/[rootk8s-master pods]# vim txt001.yaml# 必选API的版本号可通过kubectl api-resources指令查看apiVersion: v1# 必选资源的类型kind: Pod# 必选元数据信息metadata:# 必选pod名称name: pod001# 必选用于定义pod的详细信息spec:# 必选定义使用的容器列表配置容器containers:# 必选容器名- name: nginx001# 必选容器所用的镜像地址image: registry.cn-beijing.aliyuncs.com/dotbalo/nginx:latestimagePullPolicy: IfNotPresent- name: busyboximage: busybox-1.28# args覆盖 CMD 的命令args:-      sleep-      1000[rootk8s-master pods]# vim nginx.yaml apiVersion: v1 # 必选API的版本号可通过kubectl api-resources指令查看kind: Pod # 必选资源的类型metadata: # 必选元数据信息labels: # 可选标签run: nginx # keyvalue形式标签name: nginx # 必选pod名称spec: # 必选用于定义pod的详细信息containers: # 必选定义使用的容器列表配置容器- name: nginx # 必选容器名image: nginx:1.20.0 # 必选容器所用的镜像地址ports: # 可选容器监听端口- containerPort: 80 # 容器端口 2创建pod # 指定yaml文件创建pod并同时指定命名空间[rootk8s-master pods]# kubectl create -f txt001.yaml --namespace default pod/pod001 created# 查看指定命名空间的pod信息发现有一个容器没有创建成功原因是镜像拉取失败[rootk8s-master pods]# kubectl get po --namespace default NAME                           READY   STATUS         RESTARTS     AGEcluster-test-66bb44bd88-zdfdf   1/1     Running        7 (22m ago)   19hf                               1/1     Running        0             28mpod001                          1/2     ErrImagePull   0             35s# 查看pod001节点的详细信息可以看到容器创建失败的原因[rootk8s-master pods]# kubectl describe pod pod001unpack image docker.io/library/busybox-1.28:latest: failed to resolve reference docker.io/library/busybox-1.28:latest: failed to do request: Head https://registry-1.docker.io/v2/library/busybox-1.28/manifests/latest: dial tcp 124.11.210.175:443: connect: connection refused# 创建 pod[rootk8s-master pods]# kubectl create -f ./nginx.yaml pod/nginx created# 查看nginx pod的ip地址[rootk8s-master pods]# kubectl get pod -o wideNAME   READY   STATUS   RESTARTS   AGE   IP             NODE         NOMINATED NODE   READINESS GATESnginx   1/1     Running   0         10s   172.16.58.209   k8s-node02   none           none 3编辑json文件 # 使用json文件创建pod节点[rootk8s-master pods]# vim txt001.json {apiVersion:v1,kind:Pod,metadata:{name:pod002},spec:{containers:[{name:nginx002,image:registry.cn-beijing.aliyuncs.com/dotbalo/nginx:latest},{name:busybox002,image:registry.cn-hangzhou.aliyuncs.com/google_containers/busybox:1.28,args:[sleep,1000]}]}​} 4测试访问 # 测试nginx容器[rootmaster pod]# curl 172.16.58.209!DOCTYPE htmlhtmlheadtitleWelcome to nginx!/titlestylebody {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;}/style/headbodyh1Welcome to nginx!/h1pIf you see this page, the nginx web server is successfully installed andworking. Further configuration is required./ppFor online documentation and support please refer toa hrefhttp://nginx.org/nginx.org/a.br/Commercial support is available ata hrefhttp://nginx.com/nginx.com/a./ppemThank you for using nginx./em/p/body/html 3、使用 kubectl run 创建 Pod # 使用run创建pod[rootk8s-master ~]# kubectl run f --image registry.cn-beijing.aliyuncs.com/dotbalo/nginx:latestpod/f created[rootk8s-master ~]# kubectl get po -ANAMESPACE             NAME                                         READY   STATUS             RESTARTS       AGEdefault               cluster-test-66bb44bd88-zdfdf                1/1     Running            6 (57m ago)   19hdefault               f                                            1/1     Running            0             3m17s[rootmaster pod]# kubectl run nginx-run --imagenginx:1.22.0pod/nginx-run created[rootmaster pod]# kubectl get pod -o wide NAME       READY   STATUS   RESTARTS   AGE   IP             NODE         NOMINATED NODE   READINESS GATESnginx       1/1     Running   0         12m   172.16.58.209   k8s-node02   none           nonenginx-run   1/1     Running   0         47s   172.16.58.210   k8s-node02   none           none# 测试访问nginx容器[rootmaster pod]# curl 172.16.58.210!DOCTYPE htmlhtmlheadtitleWelcome to nginx!/titlestylehtml { color-scheme: light dark; }body { width: 35em; margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif; }/style/headbodyh1Welcome to nginx!/h1pIf you see this page, the nginx web server is successfully installed andworking. Further configuration is required./ppFor online documentation and support please refer toa hrefhttp://nginx.org/nginx.org/a.br/Commercial support is available ata hrefhttp://nginx.com/nginx.com/a./ppemThank you for using nginx./em/p/body/html 4、更改 Pod 的启动命令及参数 command覆盖 ENTRYPOINT 的命令 args覆盖 CMD 的命令 # 获取API对象文档可查看pod.spec.containers字段的类型、描述、可用选项等[rootmaster pod]# kubectl explain pod.spec.containers KIND:       PodVERSION:   v1FIELD: containers []ContainerDESCRIPTION:List of containers belonging to the pod. Containers cannot currently beadded or removed. There must be at least one container in a Pod. Cannot beupdated.A single application container that you want to run within a pod......省略部分内容......[rootmaster pod]# vim nginx.yaml apiVersion: v1kind: Podmetadata:labels:run: nginxname: nginxspec:containers:- name: nginximage: nginx:1.20.0ports:- containerPort: 80command: # 添加可覆盖容器启动时的entrypoint的命令- sleep- 10# 启动并查看 Pod[rootmaster pod]# kubectl delete -f ./nginx.yaml pod nginx deleted[rootmaster pod]# kubectl create -f ./nginx.yaml pod/nginx created[rootmaster pod]# kubectl get pod -o wide NAME   READY   STATUS   RESTARTS     AGE   IP             NODE         NOMINATED NODE   READINESS GATESnginx   1/1     Running   1 (2s ago)   13s   172.16.58.211   k8s-node02   none           none# sleep进程到10秒退出后会导致没有前台进程所以容器会退出[rootmaster pod]# kubectl get pod -o wide NAME   READY   STATUS     RESTARTS     AGE   IP             NODE         NOMINATED NODE   READINESS GATESnginx   0/1     Completed   2 (28s ago)   49s   172.16.58.211   k8s-node02   none           none 5、Pod 状态及 Pod 故障排查 状态说明Pending (挂起)Pod 已被 Kubernetes 系统 接收但仍有一个或多个 容器未被创建可以通过 kubectl describe 查看处于 Pending 状态的原因Running(运行中)Pod 已经被绑定到一个节 点上并且所有的容器都 已经被创建而且至少有 一个是运行状态或者是 正在启动或者重启可以通 过 kubectl logs 查看 Pod 的日志Succeeded (成功)所有容器执行成功并终 止并且不会再次重启 可以通过kubectl logs 查看 Pod日志Failed (失败)所有容器都已终止并且 至少有一个容器以失败的 方式终止也就是说这个容 器要么以非零状态退出 要么被系统终止可以通 过 logs 和 describe 查看 Pod 日志和状态Unknown (未知)通常是由于通信问题造成 的无法获得Pod的状态ImagePullBackOff (无法拉取镜 像)ErrlmagePull (镜像拉取错误)镜像拉取失败一般是由 于镜像不存在、网络不通 或者需要登录认证引起 的可以使用 describe 命 令查看具体原因CrashLoopBackOff (重 启循环)容器启动失败可以通过 logs 命令查看具体原因 一般为启动命令不正确 健康检查不通过等OOMKilled (内存不足)容器内存溢出一般是容 器的内存 Limit 设置的过 小或者程序本身有内存 溢出可以通过 logs 查看 程序启动日志Terminating (停止中)Pod 正在被删除可以通 过 describe 查看状态SysctlForbidden (内核 参数被禁止)Pod 自定义了内核配置 但 kubelet 没有添加内核 配置或配置的内核参数不 支持可以通过 describe 查看具体原因Completed (已退出)容器内部主进程退出一 般计划任务执行结束会显 示该状态此时可以通过logs 查看容器日志ContainerCreating (容 器添加中)Pod 正在创建一般为正 在下载镜像或者有配置 不当的地方可以通过 describe查看具体原因 注意: Pod 的 Phase 字段只有 Pending、Running、 Succeeded、Failed、Unknown 其余的为处于上述状 态的原因可以通过 kubectl get po xxx -o yaml 查看。 6、Pod 镜像拉取策略 操作方式说明Always总是拉取当镜像 tag 为 latest 时 且 imagePullPolicy 未配置默认为 AlwaysNever不管本地镜像是否存在都不会拉取镜 像IfNotPresent镜像不存在时拉取镜像如果 tag 为 非latest且 imagePullPolicy 未配 置默认为lfNotPresent # 查看镜像拉取情况[rootmaster pod]# kubectl describe po nginxName:             nginxNamespace:       defaultPriority:         0Service Account: defaultNode:             k8snode02/192.168.15.33StartTime:       Tue, 26 Dec 2023 08:55:32 0800Labels:           runnginxAnnotations:     cni.projectcalico.org/containerID: 95efc9bb72f1cd688ecc6a5727738ab3b27c8f606a2e414a9de50ca378df56ec                 cni.projectcalico.org/podIP: 172.16.58.211/32                cni.projectcalico.org/podIPs: 172.16.58.211/32Status:           RunningIP:               172.16.58.211IPs:IP:  172.16.58.211Containers:nginx:Container ID: containerd://276d4f3b6b83ad90cb8f55641cc25476b4038c3432ecd7f58bbc533cf1a4fdb8Image:         nginx:1.20.0Image ID:     docker.io/library/nginxsha256:ea4560b87ff03479670d15df426f7d02e30cb6340dcd3004cdfc048d6a1d54b4# 更改镜像拉取策略为 IfNotPresent[rootmaster pod]# vim nginx.yaml apiVersion: v1kind: Podmetadata:labels:run: nginxname: nginxspec:containers:- name: nginximage: nginx:1.20.0imagePullPolicy: IfNotPresent # 可选镜像拉取策略ports:- containerPort: 80 7、Pod 重启策略 操作方式说明Always默认策略。容器失效时自动重启该容 器OnFailure容器以不为 0 的状态码终止自动重启 该容器Never无论何种状态都不会重启 [rootmaster pod]# vim nginx.yaml apiVersion: v1kind: Podmetadata:labels:run: nginxname: nginxspec:containers:- name: nginximage: nginx:1.20.0imagePullPolicy: IfNotPresentports:- containerPort: 80restartPolicy: OnFailure # 配置容器重启策略 8、Pod 探针 种类说明livenessProbe 存活探针一直检测pod内部容器的程序是 否正常如果返回状态为sucess 就不做操作如果检测到异常 就会根据重启策略重启podreadinessProbe 就绪探针该探针不会重启pod但会一直 检测pod内部容器的程序是否正 常如果返回状态为sucess就不 做操作如果检测到异常对应 的service就会终止前端分发到该 pod的流量该探针主要针对的 是程序启动了但是否做好接收 流量的准备startupProbe 启动探针主要用于检测容器的启动过程 例如在容器启动时检查特定的文 件或目录是否存在如果检测失 败kubelet 会杀死容器之后根 据重启策略进行处理若探测成 功或没有配置 StartupProbe 则状态为成功之后就不再探测 8、Pod 探针的实现方式 实现方式说明ExecAction在容器内执行一个指定的命令 如果命令返回值为 0则认为容 器健康TCPSocketAction通过TCP连接检查容器指定的端 口如果端口开放则认为容器 健康HTTPGetAction对指定的 URL 进行 Get 请求如 果状态码在 200~400 之间则认 为容器健康 9、探针配置 创建没有探针的 Pod 并验证结果 [rootk8s-master test]# vim nginxprobe.yamlapiVersion:v1kind: Podmetadata:labels:run: nginxname: nginxspec:containers:- name: nginximage: nginx:1.20.0imagePullPolicy: IfNotPresentports:- containerPort: 80command:- sh- -c- sleep 10; nginx -g daemon off;restartPolicy: OnFailure[rootk8s-master test]# kubectl create -f nginx.yamlpod/nginx created[rootk8s-master test]# kubectl get po -o wideNAME READY STATUS RESTARTS AGE IP NODE NO MINATED NODE READINESS GATES nginx 1/1 Running 0 2s 172.16.58.238 k8s-node02 none none[rootk8s-master test]# curl 172.16.58.238curl: (7) Failed to connect to 172.16.58.238 port 80: 拒绝连接[rootk8s-master test]# curl -I 172.16.58.238HTTP/1.1 200 OKServer: nginx/1.20.0Date: Fri, 08 Sep 2023 02:54:27 GMT# 配置健康检查[rootk8s-master test]# vim nginx.yamlapiVersion: v1 # 必选API 的版本号kind: Pod # 必选类型 Podmetadata: # 必选元数据name: nginx # 必选符合 RFC 1035 规范的 Pod 名称spec: # 必选用于定义 Pod 的详细信息containers: # 必选容器列表- name: nginx # 必选符合 RFC 1035 规范的容器名称image: nginx:1.15.12 # 必选容器所用的镜像的地址imagePullPolicy: IfNotPresentcommand: # 可选容器启动执行的命令- sh- -c- sleep 30; nginx -g daemon off;startupProbe: # 可选健康检查。启动探针。注意三种检查方式同时只能使用一种。tcpSocket: # 端口检测方式port: 80initialDelaySeconds: 10 # 初始化时间timeoutSeconds: 2 # 超时时间periodSeconds: 20 # 检测间隔successThreshold: 1 # 检查成功为 1 次表示就绪failureThreshold: 20 # 检测失败 20 次表示未就绪readinessProbe: # 可选健康检查。就绪探针。注意三种检查方式同时只能使用一种。httpGet: # 接口检测方式path: /index.html # 检查路径port: 80scheme: HTTP # HTTP or HTTPS#httpHeaders: # 可选, 检查的请求头#- name: end-user#value: Jason initialDelaySeconds: 10 # 初始化时间, 健康检查延迟执行时间timeoutSeconds: 2 # 超时时间periodSeconds: 5 # 检测间隔successThreshold: 1 # 检查成功 1 次表示就绪failureThreshold: 2 # 检测失败 2 次表示未就绪livenessProbe: # 可选健康检查。存活探针。注意三种检查方式同时只能使用一种。tcpSocket: # 端口检测方式port: 80initialDelaySeconds: 10 # 初始化时间timeoutSeconds: 2 # 超时时间periodSeconds: 5 # 检测间隔successThreshold: 1 # 检查成功 1 次表示就绪failureThreshold: 2 # 检测失败 2 次表示未就绪ports: # 可选容器需要暴露的端口号列表- containerPort: 80 # 端口号restartPolicy: Never# 自己练习配置[rootk8s-master pods]# vim 0002pod.yamlapiVersion: v1kind: Podmetadata:labels:run: nginxname: nginx0001namespace: pesspec:restartPolicy: OnFailurecontainers:- name: nginx0001image: registry.cn-beijing.aliyuncs.com/dotbalo/nginx:latestimagePullPolicy: IfNotPresentports:- name: nginxportcontainerPort: 80command:- sh- -c- sleep 10;nginx -g daemon off;startupProbe:tcpSocket:port: 80initialDelaySeconds: 10 # 初始化时间timeoutSeconds: 2 # 超时时间periodSeconds: 20 # 检测间隔successThreshold: 1 # 检查成功为 1 次表示就绪failureThreshold: 20 # 检测失败 20 次表示未就绪readinessProbe:httpGet:port: 80path: index.htmlinitialDelaySeconds: 10 # 初始化时间, 健康检查延迟执行时间timeoutSeconds: 2 # 超时时间periodSeconds: 5 # 检测间隔successThreshold: 1 # 检查成功 1 次表示就绪failureThreshold: 2 # 检测失败 2 次表示未就绪livenessProbe:tcpSocket:port: 80initialDelaySeconds: 10 # 初始化时间timeoutSeconds: 2 # 超时时间periodSeconds: 5 # 检测间隔successThreshold: 1 # 检查成功 1 次表示就绪failureThreshold: 2 # 检测失败 2 次表示未就绪[rootk8s-master pods]# kubectl create -f 0002pod.yaml pod/nginx0001 created 10、postStart 和 preStop Pod 从开始创建到终止退出的时间范围称为 Pod 生命 周期 1生命周期的重要流程 1、初始化容器initContainers 2、创建主容器containers是必须的操作 3、容器启动后钩子 4、启动探测 5、存活性探测 6、就绪性探测 7、容器停止前钩子 2生命周期的重要行为 1.在启动任何容器之前先创建pause基础容器它初始化Pod的环境并为后续加⼊的容器提供共享的名称空间。2.初始化容器initcontainer一个pod可以拥有任意数量的init容器。init容器是按照顺序以此执行的并且仅当最后一个init容器执行完毕才会去启动主容器。3.生命周期钩子pod允许定义两种类型的生命周期钩子启动后(post-start)钩子和停止前(pre-stop)钩子这些生命周期钩子是基于每个容器来指定的和init容器不同的是init容器是应用到整个pod。而这些钩子是针对容器的是在容器启动后和停止前执行的。4.容器探测对Pod健康状态诊断。分为三种Startupprobe启动性探测、Livenessprobe(存活性探测)、Readinessprobe(就绪性检测)Startup启动探测:探测容器是否正常运行Liveness(存活性探测)判断容器是否处于runnning状态根据重启策略决定是否重启容器Readiness(就绪性检测)判断容器是否准备就绪并对外提供服务将容器设置为不可用不接受service转发的请求三种探针用于Pod检测ExecAction在容器中执行一个命令并根据返回的状态码进行诊断只有返回0为成功TCPSocketAction通过与容器的某TCP端口尝试建立连接HTTPGetAction通过向容器IP地址的某指定端口的path发起HTTP GET请求 3pod 生命周期——启动过程 4pod 生命周期——退出过程 5配置生命周期行为 [rootk8s-master test]# vim nginx-ps.yamlapiVersion: v1 # 必选API 的版本号kind: Pod # 必选类型 Podmetadata: # 必选元数据name: nginx # 必选符合 RFC 1035 规范的 Pod 名称spec: # 必选用于定义 Pod 的详细信息containers: # 必选容器列表- name: nginx # 必选符合 RFC 1035 规范的容器名称image: nginx:1.15.12 # 必选容器所用的镜像的地址imagePullPolicy: IfNotPresentlifecycle:postStart: # 容器创建完成后执行的指令, 可以是 exec httpGet TCPSocketexec:command:- sh- -c- mkdir /data/preStop: # 容器删除前执行的命令exec:command:- sh- -c- pkill nginx ; sleep 30 # 如果程序使用spring cloud微服务框架可以在下架某pod服务A前将pkill nginx替换为请求Eureka某个端口127.0.0.1:8080/shutdown-后台开发通知Eureka A服务即将下架并让其在下架pod前通知其他pod内的服务更新pod PID注册表防止A服务pod PID被删除后B服务注册表因未更新继续访问A服务导致的请求失败。注册表默认更新时间为30S。ports: # 可选容器需要暴露的端口号列表- containerPort: 80 # 端口号restartPolicy: Never# 自己练习配置[rootk8s-master pods]# cp 0002pod.yaml 0003pod.yaml# 在2的基础上加下面内容[rootk8s-master pods]# vim 0003pod.yaml lifecycle:postStart:exec:command:- sh- -c- mkdir /datapreStop:exec:command:- sh- -c- pkill nginx; sleep 30 11、gRPC 健康检查 [rootk8s-master test]# vim etcdgrpc.yamlapiVersion: v1kind: Podmetadata:name: etcd-with-grpcspec:containers:- name: etcdimage: registry.cnhangzhou.aliyuncs.com/google_containers/etcd:3.5.1-0command: [ /usr/local/bin/etcd, --data-dir, /var/lib/etcd, --listen-client-urls, http://0.0.0.0:2379, --advertiseclient-urls,http://127.0.0.1:2379, --log-level, debug]ports:- containerPort: 2379livenessProbe:grpc:port: 2379initialDelaySeconds: 10
http://www.w-s-a.com/news/553050/

相关文章:

  • 刷单网站建设wordpress缩略图 裁剪
  • 视差 网站泰州公司做网站
  • 广州网站优化系统怎么做淘客网站
  • 类似凡科互动的网站wordpress网站下载
  • 临沂网站制作公司安卓app开发实例教程
  • 泰州做网站 泰公网络科技公司网站升级中html
  • 如何做授权网站网站设计心得
  • 网站排名快速上升wordpress自动标签页
  • 做的好的手机网站有哪些万网域名交易
  • 网站怎么做漂亮点做陶瓷的公司网站
  • 软件开发设计制作网站下载自己怎么做视频收费网站
  • 江苏省建设安全协会网站天津网站建设哪家公司好
  • 资源类网站怎么做的网站上线准备工作
  • 长沙专业网站建设怎么做企业建站公司服务
  • 肇庆市有限公司网站建设手机直接看的网站有哪些
  • 织梦修改网站后备份英语作文模板高中
  • 个人网站域名用什么好上海公司拍沪牌需要什么条件
  • 网站建设 保密做网站赚钱交税
  • 食品建设网站前的市场分析进出口网站贸易平台有哪些
  • php商城网站建设个人网站用什么服务器
  • 如何做好品牌网站建设方案网站开发的学习
  • 网站开发 管理方案wordpress怎么搭建微博
  • 有哪些ui的设计网站网上商城网站建设设计方案
  • iis中怎样配置网站绑定运城可以做网站的公司
  • 品牌网站建设开发价格dedecms电影网站模板
  • 网站设计外包合同帝国网站后台认证码错误
  • 网站设计公司深圳怎么免费做公司网站
  • 90设计网站几次是什么意思swipe类网站
  • 安康微网站建设网站域名使用费用
  • 网站建设执招标评分表微信代理网站模板