nginx ingress 在aks 上安装

1. nginx ingress 在aks 上安装

helm安装非常简单。

1.1 helm安装

# Create a namespace for your ingress resources
kubectl create namespace ingress-basic

# Add the official stable repository
helm repo add stable https://kubernetes-charts.storage.googleapis.com/

# Use Helm to deploy an NGINX ingress controller
helm install nginx-ingress stable/nginx-ingress \
    --namespace ingress-basic \
    --set controller.replicaCount=2 \
    --set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
    --set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux \
    --set controller.service.externalTrafficPolicy=Local \
    --set defaultBackend.image.repository=gcr.azk8s.cn/google_containers/defaultbackend-amd64

若要为对群集中容器的请求启用客户端源 IP 保留,请将 --set controller.service.externalTrafficPolicy=Local 添加到 Helm install 命令中。 客户端源 IP 存储在 X-Forwarded-For 下的请求头中。 使用启用了客户端源 IP 保留的入口控制器时,SSL 传递将不起作用。

1.2 获取ingress ip地址

获取service即可.EXTERNAL_IP 会把真实的ip填充进去。

$ kubectl get service -l app=nginx-ingress --namespace ingress-basic

NAME                             TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
nginx-ingress-controller         LoadBalancer   10.0.61.144    EXTERNAL_IP   80:30386/TCP,443:32276/TCP   6m2s
nginx-ingress-default-backend    ClusterIP      10.0.192.145   <none>        80/TCP                       6m2s


2. 详解解读helm安装了什么

2.1 获取chart包并分析

$helm pull stable/nginx-ingress
$ls
nginx-ingress-1.40.3.tgz

解压nginx-ingress-1.40.3.tgz 即是chart 本体。熟悉的chart 结构。

$ls
Chart.yaml  OWNERS      README.md   ci          templates   values.yaml

Values.yaml 600多行,

上面改的地方不是很多

    --set controller.replicaCount=2 \
    --set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
    --set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux \
    --set controller.service.externalTrafficPolicy=Local \
    --set defaultBackend.image.repository=gcr.azk8s.cn/google_containers/defaultbackend-amd64

replicaCount 副本集数量。

镜像,如果不改默认gcr.io是会被墙掉的。

改的地方不是很多。

2.2 其他可以配置的地方

hpa 默认是没有打开的


  autoscaling:
    enabled: false
    minReplicas: 1
    maxReplicas: 11
    targetCPUUtilizationPercentage: 50
    targetMemoryUtilizationPercentage: 50

可以把nginx controller 布置成daemonset 。默认是deployment。

  ## DaemonSet or Deployment
  ##
  kind: Deployment

参考官网文档 https://docs.azure.cn/zh-cn/aks/ingress-basic

posted @ 2020-07-10 21:08  过去的我  阅读(738)  评论(0编辑  收藏  举报