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

做网站在哪里做比较好网站开发信息发布

做网站在哪里做比较好,网站开发信息发布,网站的所有权,溧阳建设工程监理网站目录 一、Deployments - 控制器应用 二、Deployment升级回滚和弹性收缩 2.1、创建一个 1.14 版本的 pod 2.2、应用升级 2.3、查看升级状态 2.4、查看历史版本 2.5、应用回滚 2.6、弹性伸缩 三、StatefulSet - 有状态应用 四、DaemonSet - 守护进程 五、Job - 单次任…目录 一、Deployments - 控制器应用 二、Deployment升级回滚和弹性收缩 2.1、创建一个 1.14 版本的 pod 2.2、应用升级 2.3、查看升级状态 2.4、查看历史版本 2.5、应用回滚 2.6、弹性伸缩  三、StatefulSet - 有状态应用 四、DaemonSet - 守护进程 五、Job - 单次任务 六、Cronjob - 定时任务 一、Deployments - 控制器应用 Deployment 表示用户对 K8S 集群的一次更新操作。Deployment 控制器可以部署无状态应用管理 Pod 和 ReplicaSet、部署滚动升级等功能。 下面是一个 Deployment 示例。 其中创建了一个 ReplicaSet负责启动三个 nginx Pod vim simple-deployment.yam apiVersion: apps/v1 kind: Deployment metadata:name: nginx-deployment # 后续创建 ReplicaSet 和 Pod 的命名基础labels:app: nginx spec:replicas: 3 # pod的副本数量selector:matchLabels:app: nginx # 定义所创建的 ReplicaSet 如何查找要管理的 Podtemplate:metadata:labels:app: nginx # pod模板标签spec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80 创建Deployment $ kubectl create -f simple-deployment.yaml deployment.apps/nginx-deployment created# 查看deployment是否创建 $ kubectl get deployments NAME READY UP-TO-DATE AVAILABLE AGE nginx-deployment 3/3 3 3 13s 注意 Deployment 已创建全部三个副本并且所有副本都是最新的它们包含最新的 Pod 模板 并且可用。字段说明 NAME 列出了名字空间中 Deployment 的名称。READY 显示应用程序的可用的“副本”数。显示的模式是“就绪个数/期望个数”。UP-TO-DATE 显示为了达到期望状态已经更新的副本数。AVAILABLE 显示应用可供用户使用的副本数。AGE 显示应用程序运行的时间。 我们可以通过kubectl describe [deployment-name]查看deployment的相关事件 $ kubectl describe deploy nginx-deployment Name: nginx-deployment Namespace: default CreationTimestamp: Mon, 06 Feb 2023 06:58:59 0000 Labels: appnginx Annotations: deployment.kubernetes.io/revision: 1 Selector: appnginx Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable StrategyType: RollingUpdate MinReadySeconds: 0 RollingUpdateStrategy: 25% max unavailable, 25% max surge Pod Template:Labels: appnginxContainers:nginx:Image: nginx:1.14.2Port: 80/TCPHost Port: 0/TCPEnvironment: noneMounts: noneVolumes: none Conditions:Type Status Reason---- ------ ------Available True MinimumReplicasAvailableProgressing True NewReplicaSetAvailable OldReplicaSets: none NewReplicaSet: nginx-deployment-85996f8dbd (3/3 replicas created) Events:Type Reason Age From Message---- ------ ---- ---- -------Normal ScalingReplicaSet 101s deployment-controller Scaled up replica set nginx-deployment-85996f8dbd to 3 我们看到最下面的Scaled up replica set nginx-deployment-85996f8dbd to 3其实就是运行三个副本的Pod在k8s中deployment是通过ReplicaSet副本集来实现的当我们创建一个deployment的时候会自动创建一个ReplicaSet来管理pod的副本数量。 查看 Deployment 创建的 ReplicaSetrs $ kubectl get rs NAME DESIRED CURRENT READY AGE nginx-deployment-85996f8dbd 3 3 3 3m13s ReplicaSet 输出中包含以下字段 NAME 列出名字空间中 ReplicaSet 的名称DESIRED 显示应用的期望副本个数即在创建 Deployment 时所定义的值。 此为期望状态CURRENT 显示当前运行状态中的副本个数READY 显示应用中有多少副本可以为用户提供服务AGE 显示应用已经运行的时间长度。 注意 ReplicaSet 的名称格式始终为 [Deployment 名称]-[哈希]。 该名称将成为所创建的 Pod 的命名基础。 其中的哈希字符串与 ReplicaSet 上的 pod-template-hash 标签一致。 查看ReplicaSet相关事件 $ kubectl describe rs nginx-deployment-85996f8dbd Name: nginx-deployment-85996f8dbd Namespace: default Selector: appnginx,pod-template-hash85996f8dbd Labels: appnginxpod-template-hash85996f8dbd Annotations: deployment.kubernetes.io/desired-replicas: 3deployment.kubernetes.io/max-replicas: 4deployment.kubernetes.io/revision: 1 Controlled By: Deployment/nginx-deployment Replicas: 3 current / 3 desired Pods Status: 3 Running / 0 Waiting / 0 Succeeded / 0 Failed Pod Template:Labels: appnginxpod-template-hash85996f8dbdContainers:nginx:Image: nginx:1.14.2Port: 80/TCPHost Port: 0/TCPEnvironment: noneMounts: noneVolumes: none Events:Type Reason Age From Message---- ------ ---- ---- -------Normal SuccessfulCreate 3m24s replicaset-controller Created pod: nginx-deployment-85996f8dbd-q9pltNormal SuccessfulCreate 3m24s replicaset-controller Created pod: nginx-deployment-85996f8dbd-knwkvNormal SuccessfulCreate 3m24s replicaset-controller Created pod: nginx-deployment-85996f8dbd-vcs8d 可以看到replicaset-controller负责创建三个nginx的Pod。 二、Deployment升级回滚和弹性收缩  升级 假设从版本为 1.14 升级到 1.15 这就叫应用的升级【升级可以保证服务不中断】回滚从版本 1.15 变成 1.14这就叫应用的回滚弹性伸缩我们根据不同的业务场景来改变 Pod 的数量对外提供服务这就是弹性伸缩 2.1、创建一个 1.14 版本的 pod apiVersion: apps/v1 kind: Deployment metadata:creationTimestamp: nulllabels:app: webname: web spec:replicas: 1selector:matchLabels:app: webstrategy: {}template:metadata:creationTimestamp: nulllabels:app: webspec:containers:# 修改 nginx 版本 1.14- image: nginx:1.14name: nginxresources: {} status: {} 创建pod $ kubectl apply -f nginx.yaml 如上图可以看到 当前运行的nginx容器的镜像版本是1.14。 2.2、应用升级 $ kubectl set image deployment web nginxnginx:1.15 升级过程 $ kubectl set image deployment web nginxnginx:1.15 deployment.apps/web image updated# 首先是开始的 nginx 1.14 版本的 Pod 在运行然后 1.15 版本的在创建 $ kubectl get pod NAME READY STATUS RESTARTS AGE web-66bf4959f5-qhzsd 1/1 Running 0 52s web-bbcf684cb-bbmqv 0/1 ContainerCreating 0 3s# 然后在 1.15 版本创建完成后就会暂停 1.14 版本 $ kubectl get pod NAME READY STATUS RESTARTS AGE web-66bf4959f5-qhzsd 1/1 Terminating 0 67s web-bbcf684cb-bbmqv 1/1 Running 0 18s# 最后把 1.14 版本的 Pod 移除完成我们的升级 $ kubectl get pod NAME READY STATUS RESTARTS AGE web-bbcf684cb-bbmqv 1/1 Running 0 33s 我们在下载 1.15 版本容器就处于 ContainerCreating 状态然后下载完成后就用 1.15 版本去替换 1.14 版本了这么做的好处就是升级可以保证服务不中断。 2.3、查看升级状态 $ kubectl rollout status deployment web deployment web successfully rolled out 2.4、查看历史版本 $ kubectl rollout history deployment web deployment.apps/web REVISION CHANGE-CAUSE 1 none 2 none 2.5、应用回滚 # 回滚到上一版本 $ kubectl rollout undo deployment web# 回滚到指定版本 $ kubectl rollout undo deployment web --to-revision2 如上图可以看到通过kubectl rollout undo成功回滚到上一个版本镜像版本又变成1.14了。当然还可以指定--to-revision回滚到指定的版本。 2.6、弹性伸缩  # 创建5个pod副本 $ kubectl scale deployment web --replicas5 deployment.apps/web scaled# 输出结果等一会就会全部 Running $ kubectl get pod NAME READY STATUS RESTARTS AGE web-5b9d46fdff-2v2rt 1/1 Running 0 24s web-5b9d46fdff-4lz7w 1/1 Running 0 24s web-5b9d46fdff-7tq9x 1/1 Running 0 3m42s web-5b9d46fdff-mfqhb 1/1 Running 0 24s web-5b9d46fdff-sfx6q 1/1 Running 0 24s 三、StatefulSet - 有状态应用 Deployment控制器设计原则管理的所有Pod一模一样提供同一个服务也不考虑在哪台Node 运行可随意扩容和缩容。这种应用称为“无状态”例如Web服务。 在实际的场景中并不能满足所有应用尤其是分布式应用会部署多个实例这些实例之间往往有依赖关系例如主从关系、主备关系这种应用称为“有状态”例如MySQL主从、Etcd集群。 这时候就需要有状态部署了有状态部署有以下几个特点 1、每个pod角色不同不对等2、pod之间有连接关系3、每个pod都有独立的存储 StatefulSet控制器用于部署有状态应用满足一些有状态应用的需求 • Pod有序的部署、扩容、删除和停止 • Pod分配一个稳定的且唯一的网络标识 • Pod分配一个独享的存储 稳定的Pod网络标识使用Headless Service相比普通Service只是将spec.clusterIP定义为None。 维护Pod网络身份会为每个Pod分配一个数字编号并且按照编号顺序部署。 稳定主要体现在主机名和Pod A记录 • 主机名statefulset名称-编号 • Pod DNS A记录statefulset名称-编号.service-name .namespace.svc.cluster.local 通过一个StatefulSet有状态应用的例子来说明 准备sta.yaml文件 apiVersion: v1 kind: Service metadata:name: nginxnamespace: defaultlabels: app: nginx spec:clusterIP: Noneports:- port: 80name: nginxprotocol: TCPtargetPort: 80selector:app: nginxtype: ClusterIP---apiVersion: apps/v1 kind: StatefulSet metadata:name: nginx-statefulsetnamespace: default spec:serviceName: nginxselector:matchLabels:app: nginxreplicas: 3template:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx 创建并查看pod $ kubectl apply -f sta.yaml service/nginx created statefulset.apps/nginx-statefulset created$ kubectl get pods NAME READY STATUS RESTARTS AGE nginx-statefulset-0 1/1 Running 0 62s nginx-statefulset-1 1/1 Running 0 43s nginx-statefulset-2 1/1 Running 0 39s 可以看到每个pod都有一个唯一的名称。 [rootlocalhost ~]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 none 443/TCP 13m nginx ClusterIP None none 80/TCP 110s 可以看到CULSTER-IP为None说明这是一个Headless Service。 四、DaemonSet - 守护进程 DaemonSet 确保全部节点上都运行一个 Pod 的副本。 当有节点加入集群时 也会为他们新增一个 Pod 。 当有节点从集群移除时这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。 DaemonSet 的一些典型用法 在每个节点上运行集群守护进程在每个节点上运行日志收集守护进程在每个节点上运行监控守护进程 一种简单的用法是为每种类型的守护进程在所有的节点上都启动一个 DaemonSet。 一个稍微复杂的用法是为同一种守护进程部署多个 DaemonSet每个具有不同的标志 并且对不同硬件类型具有不同的内存、CPU 要求。 DaemonSet示例 vim daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata:name: nginx spec:selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx创建并查看pod  # 当前集群中存在两个节点 $ kubectl get nodes NAME STATUS ROLES AGE VERSION controlplane Ready control-plane 2d17h v1.26.0 node01 Ready none 2d16h v1.26.0$ kubectl apply -f daemonset.yaml daemonset.apps/nginx created# nginx pod在两个节点都处于运行状态 $ kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-frmjc 1/1 Running 0 6s 192.168.1.4 node01 none none nginx-qdb7s 1/1 Running 0 6s 192.168.0.8 controlplane none none 五、Job - 单次任务 Job 会创建一个或者多个 Pod并将继续重试 Pod 的执行直到指定数量的 Pod 成功终止。 随着 Pod 成功结束Job 跟踪记录成功完成的 Pod 个数。 当数量达到指定的成功个数阈值时任务即 Job结束。 删除 Job 的操作会清除所创建的全部 Pod。 挂起 Job 的操作会删除 Job 的所有活跃 Pod直到 Job 被再次恢复执行。 示例 Job下面是一个 Job 配置示例。它负责计算 π 到小数点后 2000 位并将结果打印出来。 此计算大约需要 10 秒钟完成。 vim job.yaml apiVersion: batch/v1 kind: Job metadata:name: pi-job spec:template:spec:containers:- name: piimage: perl:5.34.0command: [perl, -Mbignumbpi, -wle, print bpi(2000)]restartPolicy: NeverbackoffLimit: 4 创建并查看job  $ kubectl apply -f job.yaml job.batch/pi-job created$ kubectl get job NAME COMPLETIONS DURATION AGE pi-job 1/1 30s 82s$ kubectl describe job pi-job Name: pi-job Namespace: default Selector: controller-uid63b08866-0f04-4326-98ac-08118ec419d7 Labels: controller-uid63b08866-0f04-4326-98ac-08118ec419d7job-namepi-job Annotations: batch.kubernetes.io/job-tracking: Parallelism: 1 Completions: 1 Completion Mode: NonIndexed Start Time: Sun, 29 Jan 2023 07:48:01 0000 Completed At: Sun, 29 Jan 2023 07:48:31 0000 Duration: 30s Pods Statuses: 0 Active (0 Ready) / 1 Succeeded / 0 Failed Pod Template:Labels: controller-uid63b08866-0f04-4326-98ac-08118ec419d7job-namepi-jobContainers:pi:Image: perl:5.34.0Port: noneHost Port: noneCommand:perl-Mbignumbpi-wleprint bpi(2000)Environment: noneMounts: noneVolumes: none Events:Type Reason Age From Message---- ------ ---- ---- -------Normal SuccessfulCreate 84s job-controller Created pod: pi-job-q7h7cNormal Completed 54s job-controller Job completed 要查看 Job 对应的已完成的 Pod可以执行 kubectl get pod  $ kubectl get pod NAME READY STATUS RESTARTS AGE pi-job-q7h7c 0/1 Completed 0 117s# 查看Pod的标准输出 $ kubectl logs pi-job-q7h7c 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912497217752834791315155748572424541506959508295331168617278558890750983817546374649393192550604009277016711390098488240128583616035637076601047101819429555961989467678374494482553797747268471040475346462080466842590694912933136770289891521047521620569660240580381501935112533824300355876402474964732639141992726042699227967823547816360093417216412199245863150302861829745557067498385054945885869269956909272107975093029553211653449872027559602364806654991198818347977535663698074265425278625518184175746728909777727938000816470600161452491921732172147723501414419735685481613611573525521334757418494684385233239073941433345477624168625189835694855620992192221842725502542568876717904946016534668049886272327917860857843838279679766814541009538837863609506800642251252051173929848960841284886269456042419652850222106611863067442786220391949450471237137869609563643719172874677646575739624138908658326459958133904780275901 六、Cronjob - 定时任务 CronJob 创建基于时隔重复调度的 Job。 CronJob 用于执行排期操作例如备份、生成报告等。 一个 CronJob 对象就像 Unix 系统上的 crontabcron table文件中的一行。 它用 Cron 格式进行编写 并周期性地在给定的调度时间执行 Job。 CronJob示例下面的 CronJob 示例清单会在每分钟打印出当前时间和问候消息 vim cronjob.yaml apiVersion: batch/v1 kind: CronJob metadata:name: hello-cronjob spec:schedule: * * * * *jobTemplate:spec:template:spec:containers:- name: busyboximage: busybox:1.28imagePullPolicy: IfNotPresentcommand:- /bin/sh- -c- date; echo Hello from the Kubernetes clusterrestartPolicy: OnFailure 创建并查看cronjob $ kubectl create -f cronjob.yaml cronjob.batch/hello-cronjob created$ kubectl get cronjob NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE hello-cronjob * * * * * False 0 none 6s$ kubectl describe cronjob hello-cronjob Name: hello-cronjob Namespace: default Labels: none Annotations: none Schedule: * * * * * Concurrency Policy: Allow Suspend: False Successful Job History Limit: 3 Failed Job History Limit: 1 Starting Deadline Seconds: unset Selector: unset Parallelism: unset Completions: unset Pod Template:Labels: noneContainers:busybox:Image: busybox:1.28Port: noneHost Port: noneCommand:/bin/sh-cdate; echo Hello from the Kubernetes clusterEnvironment: noneMounts: noneVolumes: none Last Schedule Time: Sun, 29 Jan 2023 07:57:00 0000 Active Jobs: hello-cronjob-27916317 Events:Type Reason Age From Message---- ------ ---- ---- -------Normal SuccessfulCreate 1s cronjob-controller Created job hello-cronjob-27916317 查看cronjob生成的pod $ kubectl get pod NAME READY STATUS RESTARTS AGE hello-cronjob-27916317-zdc9d 0/1 Completed 0 100s hello-cronjob-27916318-nx65t 0/1 Completed 0 40s$ kubectl logs hello-cronjob-27916317-zdc9d Sun Jan 29 07:57:02 UTC 2023 Hello from the Kubernetes cluster$ kubectl logs hello-cronjob-27916318-nx65t Sun Jan 29 07:58:00 UTC 2023 Hello from the Kubernetes cluster 可以看到cronjob每分钟就会生成一个对应的pod然后日志输出当前时间和对应的提示消息。
http://www.sadfv.cn/news/246521/

相关文章:

  • 公司网站网站不备案wordpress开启子站
  • 福州网上商城网站建设做网站会遇到的问题
  • asp.net c 网站开发深圳产品设计工资
  • 广州哪里有网站建设深圳网上办事大厅官网
  • 怎么做百度联盟网站网址导航主页
  • seo建站淘客百度app下载官方免费下载安装
  • 生产型或服务型企业网站有哪些wordpress 本地
  • 备案后修改网站名称网站之间的区别
  • 微企点网站建设制作网页填数据
  • 网页设计与网站建设考试网站流量增加
  • 建设银行福建分行招聘网站导航主题wordpress
  • 中通服建设有限公司网站石龙网站设计
  • 沧州网站制作网站深圳seo云哥
  • 做网站淮南动漫制作专业怎么样
  • 网站群建设优点快速申请wordpress
  • 湖南长沙做网站WordPress添加2233娘
  • 东莞网站设计排行榜男女直接做的视频视频网站
  • 寿光网站制作建个网站 费用
  • 自己做网站卖货多少钱石家庄做网站seo
  • 哪个网站做体检预约的网新科技做网站怎么样
  • 河北省住房建设厅官方网站炫酷做网站背景图
  • 石景山网站开发大良品牌网站建设
  • 网站开发前端后端广东网站建设咨询电话
  • 重庆网站建设公司 十年禅城区网站建设公司
  • 门户网站建设与运行灌南网页设计
  • 做消费金融网站职业技能培训中心
  • 淄博企业建网站盈科互动网站建设制作公司
  • 济南快速网站制作公司wordpress 示例
  • iis做网站文件下载网站建站优化
  • wordpress快速扒站西宁网站优化