当前位置:首页 > 数码 > 运行的两种方法-Kubernetes-剖析优劣-Nginx-部署 (运行的两种方式是什么)

运行的两种方法-Kubernetes-剖析优劣-Nginx-部署 (运行的两种方式是什么)

admin4个月前 (05-14)数码26

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
部署

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网关,为你的应用程序提供强大的网关解决方案。如需了解更多细节,请参考阿里云直播链接,并注意所有内容由阿里云原创,未经许可,请勿转载。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Kubernetes

“运行的两种方法-Kubernetes-剖析优劣-Nginx-部署 (运行的两种方式是什么)” 的相关文章

Kubernetes-网关-战略的流量治理-基于-API (kubernetes)

Kubernetes-网关-战略的流量治理-基于-API (kubernetes)

Kubees网关API经过形象复杂性并提供申明式的方法来定义路由和流量战略,简化了性能流程。 译自EffectiveTrafficManagementwithKubernetesGatewa...

Kubernetes-集群的十年历程-管理-踩过的十个大坑 (kubernetes)

Kubernetes-集群的十年历程-管理-踩过的十个大坑 (kubernetes)

Kubernetes是容器技术的绝对王者,它允许我们在YAML文件中描述应用程序的外观,然后Kubernetes会完成其余的工作。 高效管理Kubernetes集群至关重要。本文总结了管理K...

Kubernetes-Kubernetes-深化了解-中的网络原理和最佳通常-网络模型综合指南 (kubernetes与docker的关系)

Kubernetes-Kubernetes-深化了解-中的网络原理和最佳通常-网络模型综合指南 (kubernetes与docker的关系)

这篇详细的博文讨论了Kubees网络的复杂性,提供了关于如何在容器化环境中确保高效和安保通讯的见地。 译自NavigatingtheNetwork:AComprehensiveGuideto...

分步实现指南-基于Kubernetes构建Nacos高可用集群 (分步实施的步骤)

分步实现指南-基于Kubernetes构建Nacos高可用集群 (分步实施的步骤)

前提条件 安装并配置 Kubernetes 集群。 准备持久化存储(如 NFS、PV 等)用于保存 Nacos 数据。 修改 Nacos 配置 按照以下步骤...

b-b-href=-a-a-开发者Kubernetes懒人指南 (b-b-href=-a-a-开发者Kubernetes懒人指南)

b-b-href=-a-a-开发者Kubernetes懒人指南 (b-b-href=-a-a-开发者Kubernetes懒人指南)

你可以将本文作为开发者极速了解Kubees的指南。从基础常识到更初级的主题,如HelmChart,以及一切这些如何影响你作为开发者。 译自KubernetesforLazyDeveloper...

深入了解-不够用时-调试的救星-superdebug-当debug-Kubernetes (深入了解不够)

深入了解-不够用时-调试的救星-superdebug-当debug-Kubernetes (深入了解不够)

kubectlexec 命令的限制 kubectlexec 命令用于在正在运行的 Pod 中执行命令,但它在 Kubernetes 中有以下限制: 不能以 root 身份运行:容...

Kubernetes-治理容器化运行程序-经常使用 (kubernetes与docker的关系)

Kubernetes-治理容器化运行程序-经常使用 (kubernetes与docker的关系)

引见 Kube-downscaler是一款开源工具,准许用户定义Kubees中pod资源智能缩减的时期。这有助于经过增加非高峰时段的资源经常使用量来降落基础设备老本。 在本文中,咱们将...

100个常用命令-Kubernetes-提升集群管理和故障排除效率 (100个常用的关联词)

100个常用命令-Kubernetes-提升集群管理和故障排除效率 (100个常用的关联词)

本指南提供了全面的命令清单,用于诊断 Kubernetes 集群以及在其中运行的应用程序。请在使用这些命令时务必将占位符(如 <namespace> 和...