nginx - Kubernetes入口-AKS

标签 nginx kubernetes azure-aks

我遵循了nginx for kubernetes中提到的步骤,要在azure中安装它,我运行了以下命令

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/cloud/deploy.yaml

我打开了该文件,在# Source: ingress-nginx/templates/controller-deployment.yaml部分下,我可以看到resources,有没有一种方法可以覆盖它并为该cpu设置memoryingress限制,而且我想知道其中是否所有内容都是可定制的。

最佳答案

I would like to know whether everything in there is customizable.



几乎所有内容都是可自定义的,但请记住,您必须确切知道要进行的更改,否则可能会破坏您的入口。

Is there a way to override this and set the cpu and memory limit for that ingress?



除了在部署文件之前下载和编辑文件之外,还可以通过以下三种方式在运行时自定义文件:
  • Kubectl Edit:
  • 编辑命令使您可以直接编辑可通过命令行工具检索的任何API资源。
  • 它将打开由KUBE_EDITOR或EDITOR环境变量定义的编辑器,或者对于Linux退回到'vi'或对于Windows退回到'notepad'。
  • 您可以编辑多个对象,尽管一次只能应用一个更改。
    示例:
  • kubectl edit deployment ingress-nginx-controller -n ingress-nginx
    

    这是将打开文件中提到的部署的命令。如果您进行了无效的更改,则该更改将不适用并将保存到临时文件中,因此请牢记这一点,如果不进行更改,则应更改一些您不喜欢的结构。

    使用yaml文件的
  • Kubectl Patch:
  • 使用策略合并补丁程序,JSON合并补丁程序或JSON补丁更新资源的字段。
  • 接受JSON和YAML格式。

  • 创建一个名为patch-nginx.yaml的简单文件,其内容最少(要更改的参数及其结构):
    spec:
      template:
        spec:
          containers:
            - name: controller
              resources:
                requests:
                  cpu: 111m
                  memory: 99Mi
    

    命令结构为:kubectl patch <KIND> <OBJECT_NAME> -n <NAMESPACE> --patch "$(cat <FILE_TO_PATCH>)"
    这是一个完整的示例:
    $ kubectl patch deployment ingress-nginx-controller -n ingress-nginx --patch "$(cat patch-nginx.yaml)" 
    deployment.apps/ingress-nginx-controller patched
    
    $ kubectl describe deployment ingress-nginx-controller -n ingress-nginx | grep cpu
          cpu:      111m
    $ kubectl describe deployment ingress-nginx-controller -n ingress-nginx | grep memory
          memory:   99Mi
    
  • Kubectl Patch with JSON format :
  • 这是单行版本,它遵循与yaml版本相同的结构,但是我们将改为在json结构中传递参数:
  • $ kubectl patch deployment ingress-nginx-controller -n ingress-nginx --patch '{"spec":{"template":{"spec":{"containers":[{"name":"controller","resources":{"requests":{"cpu":"122m","memory":"88Mi"}}}]}}}}'
    deployment.apps/ingress-nginx-controller patched
    
    $ kubectl describe deployment ingress-nginx-controller -n ingress-nginx | grep cpu
          cpu:      122m
    $ kubectl describe deployment ingress-nginx-controller -n ingress-nginx | grep memory
          memory:   88Mi
    

    如果您有任何疑问,请在评论中告诉我。

    关于nginx - Kubernetes入口-AKS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61339852/

    相关文章:

    ruby-on-rails - 需要指导-如何跟踪nginx-docker-rails性能问题

    nginx - 如何在 nginx.conf 中引用操作系统环境变量

    找不到 MySql 服务器 PID

    azure - Azure Kubernetes (AKS) 'Time-out' 会发生什么情况会断开集群中 Pod 进出的连接?

    azure - 如何使用 kubectl 获取 Azure 凭据?

    angularjs - 使用 NGINX 在 Ubuntu 云服务器上托管 NodeJS(Express 和 Angular)项目

    Kubernetes "the server doesn' t 有一个资源类型部署”

    docker - 无法在 Kubernetes 仪表板中删除失败的 pod

    kubernetes - AKS 中的临时存储使用情况

    mysql - 如何将我的应用程序连接到kubernetes mysql statefulset