K8S-nginx-Ingress(helm 使用chart安装nginx-Ingress,离线安装)

1. 准备

1.1 chart下载

之前下载地址 >>
新下载地址 >>

在这里插入图片描述

1.2 镜像准备

  • controller

quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0

下载这个镜像,修改后上传私有仓库

  • webhook

jettech/kube-webhook-certgenv:1.0.0

下载这个镜像,修改后上传私有仓库

  • defaultBackend

k8s.gcr.io/defaultbackend-amd64:1.5

这个镜像国内下载不到,search一下,找一个合适的,查找如下:

[root@iot-svc-test92XR6W ~]# docker search defaultbackend-amd64:1.5
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
fungitive/defaultbackend-amd64 k8s.gcr.io/defaultbackend-amd64:1.5 0 [OK]
hb562100/defaultbackend-amd64 k8s.gcr.io/defaultbackend-amd64:1.5 0 [OK]
wingconncn/defaultbackend-amd64 k8s.gcr.io/defaultbackend-amd64:1.5 0

可以看见前边几个描述都是k8s.gcr.io/defaultbackend-amd64:1.5 这个镜像
下载一个上传私有仓库即可。

2. 修改chart

将values.yaml 文件中3个镜像改为私有仓库镜像

3. 启动 Ingress

  • 创建namespace
[root@DoM01 nginx-ingress]# kubectl create namespace ingress
  • 启动ingress
[root@DoM01 nginx-ingress]# helm install ingress -n ingress ./
Release "ingress" has been upgraded. Happy Helming!
NAME: ingress
LAST DEPLOYED: Wed Mar 24 17:36:55 2021
NAMESPACE: ingress
STATUS: deployed
REVISION: 4
TEST SUITE: None
NOTES:
The nginx-ingress controller has been installed.
It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status by running 'kubectl --namespace ingress get services -o wide -w ingress-nginx-ingress-controller'
An example Ingress that makes use of the controller:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
name: example
namespace: foo
spec:
rules:
- host: www.example.com
http:
paths:
- backend:
serviceName: exampleService
servicePort: 80
path: /
# This section is only required if TLS is to be enabled for the Ingress
tls:
- hosts:
- www.example.com
secretName: example-tls
If TLS is enabled for the Ingress, a Secret containing the certificate and key must also be provided:
apiVersion: v1
kind: Secret
metadata:
name: example-tls
namespace: foo
data:
tls.crt: <base64 encoded cert>
tls.key: <base64 encoded key>
type: kubernetes.io/tls
  • 查看服务
[root@DoM01 nginx-ingress]# kubectl get pod -n ingress
NAME READY STATUS RESTARTS AGE
ingress-nginx-ingress-controller-6c6bdcb96f-zsfhl 1/1 Running 0 91m
ingress-nginx-ingress-default-backend-5fcb75dc56-txm57 1/1 Running 0 96m

4、使用Ingress

说明:
创建Ingress用来代理指定service。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-iot01
namespace: iot-01
spec:
rules:
# 下边写域名
- host: iot01.k8s.lw
http:
paths:
#以下分别是要代理的service的名字和端口
- backend:
serviceName: web-iot
servicePort: 80

5. 其他问题

- 指定节点做代理

默认所有节点都可以代理。
如果要指定代理节点,添加如下 --set部分,或者找到values.yml中对应值修改(不建议)。

--set "rbac.create=true,controller.service.externalIPs[0]=10.10.x'x'x.56,controller.service.externalIPs[1]=10.10.xxx.57"

在这里插入图片描述

posted on   运维开发玄德公  阅读(125)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示