运行的两种方法-Kubernetes-剖析优劣-Nginx-部署 (运行的两种方式是什么)
k8s颁布运行的两种模式:
一、Dashboard模式
性能部署:蕴含运行称号、容器镒、pod数量、Service十分的繁难,不想设置性能yaml的可以很繁难的部署。
点击部署就成功了k8s运行的部署了。部署后可以看到相应的deployment、pod、service等形态和消息。
二、命令行模式
1、创立namespace
vim-namespace.yaml
apiVersion:v1#类型为Namespacekind:Namespace#类型为Namespacemetadata:name:ns-test#命名空间称号labels:name:label-test#pod标签
口头:
#创立kubectlcreate-fnginx-namespace.yaml#查问kubectlgetnamespace
![部署](https://tyye.cn/zb_users/theme/tpure/style/images/lazyload.png)
2、创立pod
普通不间接createpod,而是经过controller来创立pod。deployment为其中一种controller。
vimnginx-deployment.yaml
apiVersion:s/v1kind:Deploymentmetadata:namespace:ns-testname:nginx-deploymentspec:selector:matchLabels:app:nginxreplicas:3template:metadata:labels:app:nginxspec:contners:-name:nginximage:nginx:alpineports:-containerPort:80
口头:
#创立kubectlcreate-fnginx-deployment.yaml#查问。查问时须要期待一会,此时会下载镜像须要期间kubectlgetdeployment-nns-test#或kubectlgetpods-nns-test
可以看到"replicas:3",所以有3个pod并且每个pod只要一个容器。都反常启动。
接上去看看如何访问,检查访问的端口:
kubectlgetpods-owide-nns-test#-owide倒退的意思
这时曾经可以访问了,就是经过虚构ip来端口。
如下图,只需集群范围内的机器就可以间接经过IP访问了。
那疑问来了,这么多虚构ip,每次pod重建还会重重生成,那怎样办呢?
看上方的servcie。
3、创立service
vimnginx-service.yaml:
apiVersion:v1kind:Servicemetadata:namespace:ns-testname:nginx-servicespec:selector:app:nginxports:-protocol:TCPport:80targetPort:80
口头:
kubectlapply-fnginx-service.yamlkubectlgetsvcnginx-service-owide-nns-test
可以看到有一个cluster-ip,经过这个端口+端口就可以负载到之前3个节点的nginx了。
当然cluster-ip也只能在集群内的机器访问。再联合nginx或域名就可以向外提供负载平衡访问了。
可以看到cluster-ip只管有负载平衡的性能但还是不能外网访问k8s部署的运行,那如何能力间接外网能访问k8s部署的运行呢?
设置service为nodeport模式,如下:
apiVersion:v1kind:Servicemetadata:namespace:ns-testname:nginx-servicespec:selector:app:nginxports:-nodePort:30000protocol:TCPport:80targetPort:80type:NodePort
其中type:NodePort另外想指定端口也可以加上nodePort:30000。这样就可以经过主机ip+nodePort的访问k8s部署的运行了。
口头:
kubectlapply-fnginx-service.yamlkubectlgetsvcnginx-service-owide-nns-test
可以看到我经常使用的是我主机的ip+nodePort可以间接访问到nginx了。
三、补充常识
Kubernetes服务有四种类型:ClusterIP、NodePort、LoadBalancer和ExternalName。服务spec中的type属性选择了服务如何泄露给网络。
在k8s集群中去部署nginx服务以及配置图片,mp4播放(通过rancher操作)
最近需要在平台里面集成视频服务,所以决定用nginx来代理视频地址,在网上找来很多关于nginx配置mp4播放,结果都没发用(都不自己测一下就发的吗?)。 在一番摸索下弄好了,决定记一笔。 本次的nginx是在rancher里面操作的,不过用命令行去创建的话也是同理。 为了修改配置方便一点,我们决定给nginx添加一个configmap。 主要是加了下图的两个配置(网上众说纷纭,挨着测试一圈一直都是错的...下面是我测试好了的配置) 然后是服务的基本配置,这个没啥好说的,命名空间的话在刚刚添加配置映射的时候就创建好了。 然后我们添加数据卷,首先是映射配置,把我们刚刚创建的config引用进来
从概念、部署到优化,Kubernetes Ingress 网关的落地实践
Kubernetes Ingress:从入门到优化实战</
在Kubernetes集群中,连接内外部流量的问题有多种解决方案,包括NodePort、LoadBalancer和Ingress。其中,Ingress凭借其灵活性和复杂路由支持,成为处理高级流量管理的理想选择。然而,Ingress本身的功能相对较基础,不支持流量分流等高级特性。通过Annotation和Custom Resource Definition (CRD),我们可以对其进行扩展以满足更多需求。
Ingress最佳实践
MSE网关作为下一代网关解决方案,不仅解决了Nginx Ingress的局限,还提供了多协议支持、安全性增强和高可用性。它具备低成本、集成度高、全面监控和WASM插件支持,简化运维,如从Nginx Ingress无缝迁移到MSE,只需要通过ACK实践MSE Ingress Controller的安装和CRD创建。
部署策略方面,通过设置MseIngressConfig和IngressClass的关联,实现集群流量的精细化治理。当部署状态改变时,MseIngressConfig的状态会显示为 (创建中)、 (成功监听)、 (运行中监控Ingress)或 (非法状态,需检查消息)。
灰度发布示例
使用Ingress配置稳定版本的HTTP服务:
```yamlapiVersion: /v1kind: Ingressmetadata:name: httpbinspec:ingressClassName: mserules:- host: :paths:- path: /versionpathType: Exactbackend:service:name: go-httpbin-v1port:number: 80```灰度发布版本的Ingress配置:
```yamlapiVersion: /v1kind: Ingressmetadata:name: /canary: /canary-by-header: /canary-by-header-value: gray```了解了这些关键实践后,你可以充分利用Kubernetes Ingress的功能,提升服务的灵活性、安全性和性能。进一步探索MSE网关,为你的应用程序提供强大的网关解决方案。如需了解更多细节,请参考阿里云直播链接,并注意所有内容由阿里云原创,未经许可,请勿转载。
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。