Kubernetes安装ingress-controller

IngressController

1. 安装

1.1 查看ingress-nginx的版本匹配

https://github.com/kubernetes/ingress-nginx/blob/main/README.md#readme

下载配置
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.2/deploy/static/provider/cloud/deploy.yaml

docker pull xyz349925756/ingress-nginx-controller:v1.0.5

查找出使用的镜像
grep image deploy.yaml
替换镜像为国内可以下载的镜像

原始:

image: k8s.gcr.io/ingress-nginx/controller:v1.1.2@sha256:0bc88eb15f9e7f84e8e56c14fa5735aaa488b840983f87bd79b1054190e660de

替换:

image: docker.io/liangjw/ingress-nginx-controller:v1.1.2

原始

image: k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1@sha256:64d8c73dca984af206adf9d6d7e46aa550362b1d7a01f3a0a91b20cc67868660

替换

image: docker.io/liangjw/kube-webhook-certgen:v1.1.1
安装
kubectl apply -f deploy.yaml

2 使用NodeProt暴露

https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.1/deploy/static/provider/baremetal/deploy.yaml

3 使用HostProt的方式去暴露

先来给其中一个工作节点打一label

[root@node-2 ~]# kubectl get node
NAME     STATUS   ROLES    AGE   VERSION
node-2   Ready    <none>   29h   v1.20.2
node-3   Ready    <none>   29h   v1.20.2
[root@node-2 ~]# kubectl label node node-3 app=ingress
node/node-3 labeled

修改Deployment下的配置,让其变成hostPost模式,且选择刚刚打标签的node部署

在这里插入图片描述

4 ingress demo

#deploy
apiVersion: apps/v1
kind: Deployment
metadata:
  name: tomcat-demo
spec:
  selector:
    matchLabels:
      app: tomcat-demo
  replicas: 1
  template:
    metadata:
      labels:
        app: tomcat-demo
    spec:
      containers:
      - name: tomcat-demo
        image: registry.cn-hangzhou.aliyuncs.com/liuyi01/tomcat:8.0.51-alpine
        ports:
        - containerPort: 8080
---
#service
apiVersion: v1
kind: Service
metadata:
  name: tomcat-demo
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8080
  selector:
    app: tomcat-demo

---
#ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: tomcat-demo
spec:
  ingressClassName: nginx
  rules:
  - host: tomcat.mooc.com
    http:
      paths:
      - path: /
        backend:
          serviceName: tomcat-demo
          servicePort: 80

新版本的ingress需要加上 ingressClassName 不然ingress无法发现服务
参考: https://blog.csdn.net/Hello_worId/article/details/123602379

先复制

vim ingress-demo.yaml
:set paste
insert
shift + insert
:wq

不出意外的出现了意外情况。

百度下发现是因为我装了好几次的ingress-controller,但是又没有把东西删干净

https://blog.csdn.net/qq_39218530/article/details/115372879

使用下面的命令查看 webhook

kubectl get validatingwebhookconfigurations
ingress-nginx-admission

删除ingress-nginx-admission

kubectl delete -A ValidatingWebhookConfiguration ingress-nginx-admission
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要部署 k8s 中的 ingress-controller v1.1.0,可以按照以下步骤进行操作: 1. 首先,确保 Kubernetes 集群已经可用并且已经正确设置。 2. 下载 ingress-controller v1.1.0 的安装文件。可以通过访问官方仓库或者 GitHub 并找到相关的发布版本进行下载。 3. 解压并配置 ingress-controller。通常可以通过编辑 YAML 文件来配置 ingress-controller,在其中指定一些关键参数,如使用的 ingress 类型、负载均衡器类型等。 4. 部署 ingress-controller。通过使用 kubectl 命令行工具,执行 `kubectl apply -f <配置文件>` 来完成 ingress-controller 的部署。 5. 确认 ingress-controller 已经成功部署。可以使用 `kubectl get pods -n <命名空间>` 命令来确认 ingress-controller 的运行状态。 6. 配置 ingress 规则。根据实际需求,编辑定义 ingress 规则的 YAML 文件并部署到 Kubernetes 中。 7. 确认 ingress 规则已经生效。可以通过 `kubectl get ingress -n <命名空间>` 命令来查看已部署的 ingress 规则,并确认其状态为 "RUNNING"。 8. 测试 ingress-controller。通过访问 ingress 规则中指定的域名或路径来确认 ingress-controller 是否成功地将请求转发到相应的服务。 这些步骤可以帮助您在 Kubernetes 中部署 ingress-controller v1.1.0,并通过 ingress 规则进行请求转发。在部署过程中,记得根据实际需求进行必要的配置和调整,以确保 ingress-controller 能够正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值