helm安装ingress
helm安装ingress
一、安装Helm
1 2 3 4 5 6 7 8 | # wget https://get.helm.sh/helm-v3.3.4-linux-amd64.tar.gz # tart -zxvf helm-v3.3.4-linux-amd64.tar.gz # mv linux-amd64/helm /usr/local/bin/helm # helm version version.BuildInfo{Version: "v3.3.4" , GitCommit: "a61ce5633af99708171414353ed49547cf05013d" , GitTreeState: "clean" , GoVersion: "go1.14.9" } |
1 2 3 4 5 6 | # mkdir ingress && cd ingress # 新建仓库 # helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx # helm pull ingress ingress-nginx/ingress-nginx # tar -xf ingress-nginx-3.7.1.tgz && cd ingress-nginx |
三、安装ingress
1. 修改values.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | # 修改controller镜像地址 repository: registry.cn-beijing.aliyuncs.com /dotbalo/controller # dnsPolicy dnsPolicy: ClusterFirstWithHostNet # 使用hostNetwork,即使用宿主机上的端口80 443 hostNetwork: true # 使用DaemonSet,将ingress部署在指定节点上 kind: DaemonSet # 节点选择,将需要部署的节点打上ingress=true的label nodeSelector: kubernetes.io /os : linux ingress: "true" # 修改type,改为ClusterIP。如果在云环境,有loadbanace可以使用loadbanace type : ClusterIP # 修改kube-webhook-certgen镜像地址 registry.cn-beijing.aliyuncs.com /dotbalo/kube-webhook-certgen |
2. 安装ingress
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 选择节点打label # kubectl label node node01 ingress=true # 创建一个ingress的namespace # kubectl create ns ingress-nginx # 创建ingress # helm install ingress-nginx -n ingress-nginx # kubectl get pods -n ingress-nginx -owide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES ingress-nginx-controller-mrb2t 1 /1 Running 0 15h 192.168.10.243 node01 <none> <none> |
四、使用ingress
-
Ingress配置文件
1234567891011121314151617ingress-example.yaml
apiVersion: networking.k8s.io
/v1beta1
kind: Ingress
metadata:
name: example-ingress
annotations:
kubernetes.io
/ingressClass
:
"nginx"
spec:
rules:
- host: foo.bar.com
http:
paths:
- path: /
backend:
serviceName: nginx-svc
servicePort: 80
kubernetes.io/ingressClass: "nginx"
:使用ingressClass: "nginx",告诉ingress实现的配置rules
: 一个rules可以有多个hosthost
: 访问ingress的域名path
: 类似于nginx的location配置,同一个host可以配置多个pathbackend
:描述Service和ServicePort的组合。对ingress匹配主机和路径的HTTP与HTTPS请求将被转发到后端Pod -
创建一个nginx的Deployment
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950apiVersion: v1
kind: Service
metadata:
name: nginx-svc
labels:
app: nginx-svc
spec:
selector:
app: nginx
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
---
apiVersion: apps
/v1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io
/revision
:
"1"
labels:
app: nginx
name: nginx
namespace: default
spec:
progressDeadlineSeconds: 600
replicas: 2
#副本数
revisionHistoryLimit: 10
# 历史记录保留的个数
selector:
matchLabels:
app: nginx
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type
: RollingUpdate
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx:1.15.2
imagePullPolicy: IfNotPresent
name: nginx
terminationMessagePath:
/dev/termination-log
terminationMessagePolicy: File
restartPolicy: Always
terminationGracePeriodSeconds: 30
-
创建
123# kubectl create -f ingress-example.yaml
Warning: networking.k8s.io
/v1beta1
Ingress is deprecated
in
v1.19+, unavailable
in
v1.22+; use networking.k8s.io
/v1
Ingress
ingress.networking.k8s.io
/example-ingress
created
查看ingress
1234# kubectl get ingress
Warning: extensions
/v1beta1
Ingress is deprecated
in
v1.14+, unavailable
in
v1.22+; use networking.k8s.io
/v1
Ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
example-ingress <none> foo.bar.com 10.101.32.165 80 107s
-
修改本机hosts文件,访问far.bar.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架