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

php网站做ios做网站图片大小

php网站做ios,做网站图片大小,网站子站怎么建设,重庆彼客的网站是谁家做的Service服务发现的必要性: 对于kubernetes整个集群来说#xff0c;Pod的地址也可变的#xff0c;也就是说如果一个Pod因为某些原因退出了#xff0c;而由于其设置了副本数replicas大于1#xff0c;那么该Pod就会在集群的任意节点重新启动#xff0c;这个重新启动的Pod的I…Service服务发现的必要性: 对于kubernetes整个集群来说Pod的地址也可变的也就是说如果一个Pod因为某些原因退出了而由于其设置了副本数replicas大于1那么该Pod就会在集群的任意节点重新启动这个重新启动的Pod的IP地址与原IP地址不同这对于业务来说就不能根据Pod的IP作为业务调度。kubernetes就引入了Service的概念它为Pod提供一个入口主要通过Labels标签来选择后端Pod这时候不论后端Pod的IP地址如何变更只要Pod的Labels标签没变那么 业务通过service调度就不会存在问题。 当声明Service的时候会自动生成一个cluster IP这个IP是虚拟IP。我们就可以通过这个IP来访问后端的Pod当然如果集群配置了DNS服务比如现在的CoreDNS那么也可以通过Service的名字来访问它会通过DNS自动解析Service的IP地址。 Service的模式有三种user spaceiptablesipvs: 1、userspace模式 客户端请求到内核空间后由iptables规则将其转发到用户空间的 kube-proxykube-proxy 将其调度到各个node上的目标Pod。这种模式需要多次切换用户空间和内核空间性能很差生产环境不再使用。 2、iptables模式 iptables模式中客户端的请求进入内核态后直接由iptables将请求转发到各个pod上这种模式中随着iptables规则的增加性能越来越差而且iptables规则查看和管理难度很大生产环境中尽量少用。 3、ipvs模式 ipvs模式中客户端的请求进入内核态后直接由ipvs规则将请求转发到各个pod上这种模式相当于内嵌一套lvs集群性能比iptables强大更重要的是支持lvs中调度算法生产环境中ipvs模式优先考虑使用。ipvs内部时使用ipset维护映射关系由于是hash链表因此查询速度远远大于iptables的遍历速度。 Service的类型有四种:Cluster IPLoadBalanceNodePortExternalName 其中Cluster IP是默认的类型。 1、Cluster IP通过 集群内部IP暴露服务默认是这个类型选择该值这个Service服务只能通过集群内部访问 2、LoadBalance使用云提供商的负载均衡器可以向外部暴露服务选择该值外部的负载均衡器可以路由到NodePort服务和Cluster IP服务 3、NodePort顾名思义是Node基本的Port如果选择该值这个Service可以通过NodeIP:NodePort访问这个Service服务NodePort会路由到Cluster IP服务这个Cluster IP会通过请求自动创建 4、ExternalName通过返回 CNAME 和它的值可以将服务映射到 externalName 字段的内容没有任何类型代理被创建可以用于访问集群内其他没有Labels的Pod也可以访问其他NameSpace里的Service。 今天我主要介绍两种类型的用法Cluster IP和NodePort 开始实验 代码我还是用上个实验的tomcatmysql项目zrlog mysql的service用Cluster IP类型因为mysql只通过集群内部访问也可以了 tomcat的service用NodePort类型因为tomcat要和mysq通信也要和外部通信 k8s集群的安装这里就不讲了 前面的文章有详细的写了没装好的可以去看看 首先配置好系统环境 [rootserver153 test]# modprobe ip_va [rootserver153 test]# echo ip_vs /etc/modules-load.d/k8s.conf然后创建一个空目录 开始编写yaml文件如果不想手写那么多代码的可以生成一个模板我上一篇文章也有介绍了 tomcat和mysql的代码其实也可以写在一个文件里,用—分开就可以了但是那样太长了所以我分两个文件写 先写tomcat的yaml文件 [rootserver153 test]# cat tomcat-deploy.yaml apiVersion: v1 kind: Service # 声明版本为Service metadata:name: tomcat-service # 定义Service的名字labels:name: show-tomcat-pod # 定义Service的标签 spec:type: NodePort # 定义Service的类型,自动分配一个集群serviceipselector:app: tomcat-deploy #定义标签选择器,会代理后端apptomcat-deploy的Podports:- port: 80 #内部暴露的端口 targetPort: 8080 #代理的pod的端口 nodePort: 31111 #暴露给主机外部访问的端口(default: 30000-32767)--- apiVersion: apps/v1 kind: Deployment metadata:labels:app: tomcat-deployname: tomcat-deploynamespace: default spec:progressDeadlineSeconds: 600replicas: 1revisionHistoryLimit: 10selector:matchLabels:app: tomcat-deploystrategy:rollingUpdate:maxSurge: 25%maxUnavailable: 25%type: RollingUpdatetemplate:metadata:labels:app: tomcat-deployspec:#创建init容器initContainers:#代码镜像- image: www.test.com/mytest/zrlog:v1#init容器名字name: init#将代码复制到匿名数据卷command: [cp,-r,/tmp/ROOT.war,/www]#将匿名数据卷挂载到容器中的/www目录下volumeMounts:- mountPath: /wwwname: tomcat-volume#创建tomcat容器containers:- image: oxnme/tomcatimagePullPolicy: Alwaysname: tomcatterminationMessagePath: /dev/termination-logterminationMessagePolicy: File#将数据卷挂载到tomcat的代码目录下volumeMounts:- mountPath: /usr/local/tomcat/webapps/name: tomcat-volumednsPolicy: ClusterFirstrestartPolicy: AlwaysschedulerName: default-schedulerterminationGracePeriodSeconds: 10#创建匿名数据卷volumes:- name: tomcat-volumeemptyDir: {}然后是mysql的yaml文件有些是一样的字段所以我就不写注释了 本来mysql这种有状态的pod应该用StatefulSet控制器的但是现在主要是实验service 所以我就用简单的pod来代替了 [rootserver153 test]# cat mysql-pod.yaml apiVersion: v1 kind: Service metadata:name: mysql-headless-servicelabels:name: svc-mysql-pod spec:type: ClusterIPselector:run: mysql-podports:- port: 3306 #内部的暴露端口targetPort: 3306 #代理的pod的端口这里不用暴露给外部网络访问所以不用写nodePort了--- apiVersion: v1 kind: Pod metadata:labels:run: mysql-podname: mysql-podnamespace: default spec:containers:- image: mysql:5.7imagePullPolicy: IfNotPresentname: mysql-podresources: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilevolumeMounts:env:- name: MYSQL_ROOT_PASSWORD #定义mysql的初始密码value: MySQL666- name: MYSQL_DATABASE #初始化是创建一个zrlog数据库value: ZrlogdnsPolicy: ClusterFirstenableServiceLinks: truepreemptionPolicy: PreemptLowerPriorityrestartPolicy: AlwaysschedulerName: default-schedulerserviceAccount: defaultserviceAccountName: defaultterminationGracePeriodSeconds: 30 配置文件写好以后就可以启动服务了 [rootserver153 test]# kubectl apply -f mysql-pod.yaml service/mysql-headless-service created pod/mysql-pod created [rootserver153 test]# kubectl apply -f tomcat-deploy.yaml service/tomcat-service created deployment.apps/tomcat-deploy created看运行结果可以看到service和pod都被创建了然后去查看pod和service的情况 [rootserver153 test]# kubectl get pods NAME READY STATUS RESTARTS AGE mysql-pod 1/1 Running 0 104s tomcat-deploy-555479bdf4-bj7mt 1/1 Running 0 96s [rootserver153 test]# kubectl get service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.1.0.1 none 443/TCP 4d3h mysql-headless-service ClusterIP 10.1.50.178 none 3306/TCP 2m13s tomcat-service NodePort 10.1.7.229 none 80:31111/TCP 2m5s可以看到情况是正常的 然后我们去看service的详细情况 [rootserver153 ~]# kubectl describe services然后我们去浏览器访问刚才我们定义的外部端口31111 可以看到是能访问的不需要像上次那样又查看变化的ip又要nginx代理才能访问了 就像docker端口映射一样现在就可以通过端口访问了 然后我们连接数据库安装 然后我们的service实验就完成了 pod之间的访问通过名称和端口就可以了service是通过标签名来自动发现的所以ip再怎么变也没有关系 这就解决了pod重建ip会变的问题了 希望对大家的学习有帮助
http://www.w-s-a.com/news/866272/

相关文章:

  • 猎头可以做单的网站企业网站建设
  • 建小程序需要网站吗在putty上怎样安装wordpress
  • 天津智能网站建设找哪家WordPress相册插件pro
  • 电脑网站页面怎么调大小济宁网站建设软件开发
  • 亿玛酷网站建设广州增城区最新消息
  • 企业网站视频栏目建设方案中企动力网站模板
  • 网站页面策划国外注册域名的网站
  • 百中搜如何做网站排名网站维护一年一般多少钱
  • 镇江地区做网站的公司wordpress说说加分类
  • 深圳高端网站设计免费的关键词优化软件
  • 视频网站公司沈阳网站建设服务
  • 网站全屏代码做网站必须用对方服务器
  • 网站速度慢wordpressssl正式申请后wordpress
  • 那个网站做玉石最专业西瓜创客少儿编程加盟
  • 备案时的网站建设方案书免费软件库
  • 惠州外贸网站建设网站模板 兼容ie8
  • 南京淄博网站建设方案php网站开发实训感想
  • 网站设计的含义只做恐怖片的网站
  • 网站改版方案ppt室内装修公司简介
  • 做色网站wordpress twenty ten
  • 马鞍山建设工程监督站建管处网站免费的海报模板网站
  • 类似百度的网站移动端的网站怎么做的
  • 网站开发需要什么文凭网站分析的优劣势
  • 海尔网站建设不足之处山东网站营销
  • 楚雄 网站建设广告设计一般人能学吗
  • 热搜榜排名前十山东seo多少钱
  • 衡水哪有建网站的吗企业信息系统英文
  • 有模板怎么建站wordpress媒体库图片路径
  • 怎么做网站h汉狮企业网站营销的实现方式
  • 新津县建设局网站怎么做区块链网站