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

温江做网站的公司WordPress清除ID沉余

温江做网站的公司,WordPress清除ID沉余,wordpress博文怎么删,网站建设三合一一.Deployment 资源详解 如果Pod出现故障#xff0c;对应的服务也会挂掉#xff0c;所以Kubernetes提供了一个Deployment的概念 #xff0c;目的是让Kubernetes去管理一组Pod的副本#xff0c;也就是副本集 #xff0c;这样就能够保证一定数量的副本一直可用#xff0c;…一.Deployment 资源详解 如果Pod出现故障对应的服务也会挂掉所以Kubernetes提供了一个Deployment的概念 目的是让Kubernetes去管理一组Pod的副本也就是副本集 这样就能够保证一定数量的副本一直可用不会因为某一个Pod挂掉导致整个服务挂掉。 Deployment 还负责在 Pod 定义发生变化时对每个副本进行滚动更新Rolling Update。 x 使用yaml创建Deployment k8s deployment资源创建流程 1. 用户通过 kubectl 创建 Deployment。 2. Deployment 创建 ReplicaSet。 3. ReplicaSet 创建 Pod。 对象的命名方式是子对象的名字 父对象名字 随机字符串或数字  Deployment是一个定义及管理多副本应用即多个副本 Pod的新一代对象与Replication Controller相比它提供了更加完善的功能使用起来更加简单方便。 1.1 deployment 实例 例1 apiVersion: apps/v1 kind: Deployment metadata:name: nginx-deployment spec:selector:matchLabels:app: nginxreplicas: 2template:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.7.9ports:- containerPort: 80 例2在上面yaml的基础上添加了volume [rootkube-master sa]# cat deployment.yaml apiVersion: apps/v1 #注意版本号 kind: Deployment metadata:name: nginx-deployment spec:selector: #属性选择器matchLabels:app: nginxreplicas: 2 #管理的副本个数template: #模板属性metadata: #对pod的描述labels:app: nginxspec:volumes: #定义共享卷- name: nginx-volemptyDir: {}containers:- name: nginximage: daocloud.io/library/nginxports:- containerPort: 80volumeMounts: #定义挂载卷- mountPath: /usr/share/nginx/htmlname: nginx-vol 1.2 文件说明 #创建Deployment #将上述的YAML文件保存为deployment.yaml然后创建Deployment [rootkube-master prome]# kubectl apply -f deployment.yaml deployment.apps/nginx-deployment created# 检查Deployment的列表启动之后需要创建时间比较长 # 通过 kubectl get 命令检查这个 YAML 运行起来的状态 [rootkube-master prome]# kubectl get deployments NAME READY UP-TO-DATE AVAILABLE AGE nginx-deployment 2/2 2 2 2m22s[rootkube-master prome]# kubectl get pods -l appnginx NAME READY STATUS RESTARTS AGE nginx-deployment-59c4b86474-2llrt 1/1 Running 0 2m51s nginx-deployment-59c4b86474-n2r2m 1/1 Running 0 2m51s# 在这里加上了一个 -l 参数即获取所有匹配 app: nginx 标签的 Pod。需要注意的是在命令行中所有 key-value 格式的参数都使用而非:表示。# 删除Deployment: [rootkube-master ~]# kubectl delete deployments nginx-deployment deployment nginx-deployment deleted#或者 [rootkube-master ~]# kubectl delete -f deployment.yaml 1.3 deployment可用字段 replicas: 1 # 声明副本数目 revisionHistoryLimit: 3 # 保留历史版本 selector: # 选择器 二.Service 服务 k8s 内部域名访问方式 ..svc.cluster.local 2.1 创建service # 1.创建一个depl [rootkub-k8s-master prome]# vim nginx-depl.yml apiVersion: apps/v1 kind: Deployment metadata:name: dep01 spec:selector:matchLabels:app: webreplicas: 2template:metadata:labels:app: webspec:containers:- name: testnginx9image: daocloud.io/library/nginxports:- containerPort: 80 [rootkub-k8s-master prome]# kubectl apply -f nginx-depl.yml deployment.apps/nginx-deployment created#2. 创建service并且以nodePort的方式暴露端口给外网 [rootkub-k8s-master prome]# vim nginx_svc.yaml apiVersion: v1 kind: Service metadata:name: mysvc spec:type: NodePort #类型ports:- port: 8080nodePort: 30001targetPort: 80selector: #选择器app: web[rootkub-k8s-master prome]# kubectl apply -f nginx_svc.yaml service/mysvc created# 3.测试 [rootkub-k8s-master prome]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 none 443/TCP 5d18h mysvc NodePort 10.100.166.208 none 8080:30001/TCP 21s 2.2 页面请求测试 2.3 pod内部请求测试 # 进入docker容器 [rootkube-master sa]# kubectl exec -it dep01-694c5dbcd-ccdsv /bin/bash # 请求rootdep01-694c5dbcd-ccdsv:/# curl mysvc.default.svc.cluster.local:8080 !DOCTYPE html html head titleWelcome to nginx!/title stylebody {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;} /style /head body h1Welcome to nginx!/h1 pIf you see this page, the nginx web server is successfully installed and working. Further configuration is required./ppFor online documentation and support please refer to a hrefhttp://nginx.org/nginx.org/a.br/ Commercial support is available at a hrefhttp://nginx.com/nginx.com/a./ppemThank you for using nginx./em/p /body /html 2.4 端口解析 # 解析port port是暴露在cluster ip上的端口port提供了集群内部客户端访问service的入口即clusterIP:port。 nodeport nodePort 提供了集群外部客户端访问 Service 的一种方式nodePort 提供了集群外部客户端访问 Service 的端口通过 nodeIP:nodePort 提供了外部流量访问k8s集群中service的入口。 targetPort targetPort是pod的端口从port和nodePort来的流量经过kube-proxy流入到后端pod的targetPort上最后进入容器。 containerPort containerPort是pod内部容器的端口targetPort映射到containerPort。 2.5 kube-proxy 使用ipvs [rootkube-master ~]# kubectl get configmap kube-proxy -n kube-system -o yaml kube-proxy-configmap.yaml [rootkube-master ~]# sed -i s/mode: /mode: ipvs/ kube-proxy-configmap.yaml [rootkube-master ~]# kubectl apply -f kube-proxy-configmap.yaml [rootkube-master ~]# rm -f kube-proxy-configmap.yaml [rootkube-master ~]# kubectl get pod -n kube-system | grep kube-proxy | awk {system(kubectl delete pod $1 -n kube-system)} 后续请求时可以发现已经通过了算法进行调度 [rootkube-master ~]# ipvsadm -L -n IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags- RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 172.17.0.1:30001 rr- 10.244.1.34:80 Masq 1 0 0 - 10.244.2.31:80 Masq 1 0 0 TCP 192.168.96.143:30001 rr- 10.244.1.34:80 Masq 1 0 12 - 10.244.2.31:80 Masq 1 0 12 三.k8s服务暴露 3.1 ClusterIP 此类型会提供一个集群内部的虚拟IP与Pod不在同一网段)以供集群内部的pod之间通信使用。ClusterIP也是Kubernetes service的默认类型。 3.2 NodePort 外网client---nodeIPnodePort---podIPPodPort 为每个节点暴露一个端口通过nodeip nodeport可以访问这个服务同时服务依然会有cluster类型的ipport。内部通过clusterip方式访问外部通过nodeport方式访问。 3.3 loadbalance LoadBalancer在NodePort基础上K8S可以请求底层云平台创建一个负载均衡器将每个Node作为后端进行服务分发。 3.4 Ingress Ingress是一种HTTP方式的路由转发机制为K8S服务配置HTTP负载均衡器通常会将服务暴露给K8S群集外的客户端。 四.Ingress 暴露服务 要理解ingress需要区分两个概念ingress和ingress-controller ingress对象 指的是k8s中的一个api对象一般用yaml配置。作用是定义请求如何转发到service的规则可以理解为配置模板。 ingress-controller 具体实现反向代理及负载均衡的程序对ingress定义的规则进行解析根据配置的规则来实现请求转发。 简单来说ingress-controller才是负责具体转发的组件通过各种方式将它暴露在集群入口外部对集群的请求流量会先到ingress-controller而ingress对象是用来告诉ingress-controller该如何转发请求比如哪些域名哪些path要转发到哪些服务等等。 service 的表现形式为IP:PORT即工作在第四层传输层TCP/IP层对于不同的URL地址经常对应用不同的后端服务或者虚拟服务器这些应用层的转发机制仅通过kubernetes的service机制是无法实现的这种情况我么可以使用ingress策略定义和一个具体的ingress Controller. Ingress提供七层负载均衡能力可以通过 Ingress 配置提供外部可访问的 URL、负载均衡、SSL、基于名称的虚拟主机等。作为集群流量接入层Ingress 的高可靠性显得尤为重要。 4.1 ingress详解 这个负载均衡是基于nginx七层反向代理来实现的ingress工作原理如下图 外部客户端通过访问负载均衡器然后调度到service上然后在调度到IngressControllerIngressController通过Ingress规则域名或虚拟主机访问到后端pod而在Ingress规则当中对应的主机是由service分组来设定的可以看到这幅图有2种service最上面的service是用来对外提供服务的而下面2个service仅仅是用来分pod组的 Kubernetes 并没有自带 Ingress Controller实际上ingress-controller只是一个统称具体实现有多种需要自己单独安装目前由k8s维护的ingress-controller只有google云的GCE与ingress-nginx两个常用的是 Ingress-nginx Controller. Ingress 一般由三个组件组成 1. Nginx 反向代理负载均衡器 2. Ingress Controller 可以理解为控制器它通过不断的跟 Kubernetes API 交互实时获取后端 Service、Pod 等的变化比如新增、删除等然后结合 Ingress 定义的规则生成配置然后动态更新上边的 Nginx 负载均衡器并刷新使配置生效来达到服务自动发现的作用。 3. Ingress 则是定义规则通过它定义某个域名的请求过来之后转发到集群中指定的 Service。它可以通过 Yaml 文件定义可以给一个或多个 Service 定义一个或多个 Ingress 规则。 4.2 如何创建 Ingress 资源 Ingress 中的spec字段是Ingress资源的核心组成部分主要包含以下3个字段 rules用于定义当前Ingress资源的转发规则列表由rules定义规则或没有匹配到规则时所有的流量会转发到由backend定义的默认后端。 backend默认的后端用于服务那些没有匹配到任何规则的请求定义Ingress资源时必须要定义backend或rules两者之一该字段用于让负载均衡器指定一个全局默认的后端。 tlsTLS配置目前仅支持通过默认端口443提供服务如果要配置指定的列表成员指向不同的主机则需要通过SNI TLS扩展机制来支持该功能。 4.3 部署 Ingress 控制器Nginx 4.3.1 下载ingress controller [rootk8s-master ~]# cd /mnt/ [rootk8s-master mnt]# wget https://codeload.github.com/kubernetes/ingress-nginx/tar.gz/refs/tags/controller-v1.3.1 [rootk8s-master mnt]# tar xf ingress-nginx-controller-v1.3.1.tar.gz [rootk8s-master mnt]# cd ingress-nginx-controller-v1.3.1/deploy/static/provider/cloud [rootk8s-master cloud]# ls deploy.yaml kustomization.yaml [rootk8s-master cloud]# cd [rootk8s-master ~]# vim deploy.yaml #修改配置文件 找到已下apiserver的版本 # 390行修改 kind: DaemonSet #将原来的Deployment修改为DaemonSet# 415行下边添加 hostNetwork: true #添加此配置 需要修改的地方 kind: DaemonSet 官方原始文件使用的是deploymentreplicate 为 1这样将会在某一台节点上启动对应的nginx-ingress-controller pod。外部流量访问至该节点由该节点负载分担至内部的service。测试环境考虑防止单点故障改为DaemonSet然后删掉replicate 配合亲和性部署在制定节点上启动nginx-ingress-controller pod确保有多个节点启动nginx-ingress-controller pod后续将这些节点加入到外部硬件负载均衡组实现高可用性。 hostNetwork: true 添加该字段暴露nginx-ingress-controller pod的服务端口80 4.3.2 创建ingress-controller [rootk8s-master ~]# kubectl apply -f deploy.yaml查看ingress-controller资源 [rootk8s-master ~]# kubectl get pods -n ingress-nginx NAME READY STATUS RESTARTS AGE nginx-ingress-controller-s8vnl 1/1 Running 0 98m nginx-ingress-controller-ztxz4 1/1 Running 0 97m[rootk8s-master cloud]# kubectl get ingressclass NAME CONTROLLER PARAMETERS AGE nginx k8s.io/ingress-nginx none 38m 测试ingress 创建两个应用和service [rootk8s-master ~]# vim my-apache.yaml apiVersion: apps/v1 kind: Deployment metadata:name: my-apache spec:selector:matchLabels:run: my-apachereplicas: 2template:metadata:labels:run: my-apachespec:containers:- name: my-apacheimage: daocloud.io/library/httpd:2.4ports:- containerPort: 80 --- apiVersion: v1 kind: Service metadata:name: my-apachelabels:run: my-apache spec:#type: NodePortports:- port: 80targetPort: 80#nodePort: 30002selector:run: my-apache[rootk8s-master ~]# cat my-nginx.yaml apiVersion: apps/v1 kind: Deployment metadata:name: my-nginx spec:selector:matchLabels:run: my-nginxreplicas: 2template:metadata:labels:run: my-nginxspec:containers:- name: my-nginximage: daocloud.io/library/nginx:1.7.9ports:- containerPort: 80 --- apiVersion: v1 kind: Service metadata:name: my-nginxlabels:run: my-nginx spec:#type: NodePortports:- port: 80targetPort: 80#nodePort: 30001selector:run: my-nginx创建pod和service [rootk8s-master ~]# kubectl apply -f my-apache.yaml [rootk8s-master ~]# kubectl apply -f my-nginx.yaml查看资源 [rootk8s-master ~]# kubectl get pods NAME READY STATUS RESTARTS AGE my-apache-d49c8b95c-8z8l9 1/1 Running 0 125m my-apache-d49c8b95c-d9q5s 1/1 Running 0 125m my-nginx-5fdc96f9b4-bmf6s 1/1 Running 0 124m my-nginx-5fdc96f9b4-qfw8c 1/1 Running 0 124m [rootk8s-master ~]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 none 443/TCP 20d my-apache NodePort 10.99.178.186 none 80/TCP 125m my-nginx NodePort 10.97.171.188 none 80/TCP 124m 配置ingress转发文件 [rootk8s-master ~]# cat ingress-test.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: test-ingressnamespace: defaultannotations:nginx.ingress.kubernetes.io/rewrite-target: / spec:ingressClassName: nginxrules: #定义转发规则- host: test.apache.ingress #指定域名方式http:paths:- path: / #指定访问的路径pathType: Prefix #定义路径的类型backend: #定义转发后端的服务service: #定义转发的servicename: my-apacheport:number: 80- host: test.nginx.ingresshttp:paths:- path: /pathType: Prefixbackend:service:name: my-nginxport:number: 80[rootk8s-master ~]# kubectl apply -f ingress-test.yaml [rootk8s-master ~]# kubectl get ingress NAME CLASS HOSTS ADDRESS PORTS AGE test-ingress none test.apache.ingress,test.nginx.ingress 80 119m 4.3.3 修改ingress转发类型 [rootk8s-master ~]# kubectl edit svc ingress-nginx-controller -n ingress-nginx # 将type修改为NodePort nginx-ingress-controller运行在node1,node2两个节点上。 如果网络中有dns服务器在dns中把这两个域名映射到nginx-ingress-controller运行的任意一个节点上如果没有dns服务器只能修改host文件了。 任意一个节点上操作(客户端解析) 我这里有两个节点部署了控制器ip分别为172.16.229.5172.16.229.6 如果有多个可以随便选。 在wind电脑设置本地解析 172.16.229.5 test.nginx.ingress 172.16.229.6 test.apache.ingress
http://www.huolong8.cn/news/292606/

相关文章:

  • 网站制作前需要进行规划设计服装集团网站建设
  • 做数据网站合肥网站运营
  • 做企业门户网站响应式网站几个断点
  • 做网络销售怎么建立网站芝麻开门网站建设
  • 台州建设公司网站用jsp做的网站框架
  • 哪里有做企业网站的简述网页设计的流程
  • 贵阳网站制作江苏省建设斤网站
  • 做pc网站软件飞虹网架建设官方网站
  • 贵阳网站建设 网站制作wordpress首页加速
  • 贵阳做网站公司wordpress显示id
  • 电子商务网站建设题库制作二维码的平台
  • html5网站开发工具有哪些个人主页网页设计
  • wordpress制作功能型网站装修公司加盟模式
  • 网站建设网站推广优化服饰网站模板设计
  • 做设计找图片的网站有哪些网站建设实训记录
  • 怎样做网站赚流量手工制作花
  • 怎样安全做黑色彩票网站武昌网站建设的公司
  • 学校网站建设流程图网站建设无底薪提成
  • 网站的前端怎么做足球网站怎么做
  • 威海做网站的公司哪家好怎么修改网站标题关键词描述
  • 建设化妆品网站的成本天河建设网站
  • 移动网站建设自助建站住房和城乡建设部网站办事大厅
  • 厦门网站建设企业有哪些app软件开发公司
  • 做网站高流量赚广告费wordpress 要求php版本
  • 无锡网站营销公司哪家好商城源代码
  • 合肥网站建设zgkr网站框架搭建设计
  • 网站备案好处个人网页模板html免费
  • 网站建设费走什么费用丰县做淘宝网站
  • 网站如何绑定域名二 网站建设的重要性
  • 中国建设银行官网站下载物流企业网站模板免费下载