Ingress-nginx安装部署

Ingress-nginx安装部署

1.部署文件下载

# 下载地址
https://github.com/kubernetes/ingress-nginx/tree/nginx-0.30.0

# configmap.yaml 存储配置信息,key/value值
# namespace.yaml 建命名空间
# mandatory.yaml 包含部署deploy相关所有资源(configmap.yaml,namespace.yaml,rbac.yaml,with-rbac.yaml)
# rbac.yaml rbac授权配置,创建Ingress需要使用的
# ServiceAccount,ClusterRole,Role,RoleBinding,ClusterRoleBinding
# with-rbac.yaml 能使用rbac授权的deploy配置,用于构建ingress-controller

https://upload-images.jianshu.io/upload_images/2915374-c5c16b994b4fd71c.png?imageMogr2/auto-orient/strip|imageView2/2/w/661/format/webp
2.service文件下载

# 下载地址
https://github.com/kubernetes/ingress-nginx/tree/nginx-0.30.0

在这里插入图片描述
3(1).修改mandatory.yaml的镜像源

# 将镜像源 quay.io 替换成 quay.azk8s.cn
sed -i 's/quay.io/quay.azk8s.cn/' mandatory.yaml

3(2).部署DaemonSet(VIP用)

# 1.将Deployment改为DaemonSet
# 2.注释掉replicas
# 3.与nodeSelector同级添加hostNetwork: true(Service的type需要改为ClusterIP)
# 4.在nodeSelector下添加标签ingress: "true"
# 5.给node打标签
kubectl label nodes <node-name> <label-key>=<label-value> 

4.部署ingress-nginx-controller

kubectl apply -f mandatory.yaml

5.部署ingress-nginx-sevice

# 可以指定nodePort: 30443
# 如果ingress DaemonSet下的spec的hostNetwork为true,则需要将Service的type改为ClusterIP
kubectl apply -f service-nodeport.yaml

6.部署ingress-nginx

vi ingress-hr-web.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-hr-web
  namespace: default
  annotations: 
    kubernets.io/ingress.class: "nginx"
spec:
  rules:
  - host: hr-web.liuyu.com
    http:
      paths:
      - path: 
        backend:
          serviceName: hr-web-svc
          servicePort: 8999

7.修改本机与服务器的hosts

# 修改为keepalived上配置的vip
### 安装 Ingress-Nginx 控制器 为了在 Kubernetes 集群上安装 Ingress Nginx 控制器,官方提供了详细的指导说明[^1]。通常情况下,推荐的方法是通过 Helm 或者直接应用 YAML 文件来进行部署。 #### 使用 Helm 进行安装 Helm 是一种用于管理 Kubernetes 应用程序的包管理工具。对于希望简化安装过程并能灵活定制参数的人来说,这是一个理想的选择。 ```bash helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update helm install ingress-nginx ingress-nginx/ingress-nginx ``` 以上命令会添加 ingress-nginx 的 Helm 仓库到本地配置中,并更新可用图表列表,最后执行实际的安装操作。 #### 直接应用 YAML 文件 如果偏好不依赖额外工具,则可以直接下载预构建好的清单文件并通过 `kubectl apply` 命令来完成部署: ```bash kubectl create namespace ingress-nginx kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.7.0/deploy/static/provider/cloud/deploy.yaml ``` 这段脚本创建了一个名为 `ingress-nginx` 的命名空间,并从中获取最新的稳定版本 YAML 清单文件进行了资源定义的应用。 #### 自定义安装选项 有时可能需要调整默认设置以适应特定环境需求。这可以通过修改所提供的模板或是在使用 Helm 安装时传递自定义值来实现。例如指定负载均衡服务类型、节点端口范围等高级特性都可以在此阶段进行配置[^2]。 #### 测试安装成功与否 一旦完成了上述任一方式的操作之后,应该验证新组件是否正常工作。最简单的方式就是查看 Pod 和 Service 资源的状态: ```bash kubectl get all -n ingress-nginx ``` 这条指令能够展示出所有属于该命名空间下的对象概览,包括但不限于 Pods, Services 等重要组成部分的信息[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值