use nginx-ingress

This commit is contained in:
w-mj 2023-02-23 14:01:05 +08:00
parent 6ed8e04596
commit cdf15abc38
No known key found for this signature in database
GPG Key ID: 3A2CB5BE2F835897
4 changed files with 46 additions and 25 deletions

BIN
ingress-nginx.tgz Normal file

Binary file not shown.

View File

@ -17,16 +17,16 @@ spec:
serviceAccountName: dev serviceAccountName: dev
containers: containers:
- name: k8s-manager-pod - name: k8s-manager-pod
image: docker.educg.net/k8s/manager:dev image: docker.educg.net/cg/k8s-manager:v1.0.1
ports: ports:
- containerPort: 8080 - containerPort: 8080
env: env:
- name: DB_HOST - name: DB_HOST
value: 192.168.131.191 value: 192.168.131.195
- name: DB_USER - name: DB_USER
value: app value: app
- name: DB_PASS - name: DB_PASS
value: 1PQlNf9*9Ulo value: ???????
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
@ -37,9 +37,28 @@ metadata:
spec: spec:
type: NodePort type: NodePort
ports: ports:
- port: 80 - port: 8000
targetPort: 8080 targetPort: 8000
protocol: TCP protocol: TCP
nodePort: 30001 nodePort: 30001
selector: selector:
app: k8s-manager app: k8s-manager
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: manager-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /admin(/|$)(.*)
pathType: Prefix
backend:
service:
name: k8s-manager-service
port:
number: 8000

View File

@ -65,6 +65,6 @@ func Test(c *gin.Context) {
c.SetCookie("Authorization", "Bearer "+token, 0, "", "", false, false) c.SetCookie("Authorization", "Bearer "+token, 0, "", "", false, false)
c.Header("Authorization", "Bearer "+token) c.Header("Authorization", "Bearer "+token)
c.Header("Cache-Control", "no-store") c.Header("Cache-Control", "no-store")
c.Redirect(http.StatusTemporaryRedirect, "/index") c.Redirect(http.StatusTemporaryRedirect, "../index")
} }
} }

View File

@ -98,7 +98,10 @@ func (c *K8sClient) UpdateDeployment(app *AppModel) {
Name: app.ContainerName(), Name: app.ContainerName(),
Image: app.Image, Image: app.Image,
Command: app.GetCommandOrBlack(), Command: app.GetCommandOrBlack(),
Env: app.GetEnv(), Env: append(app.GetEnv(), v1.EnvVar{
Name: "URL_PREFIX",
Value: app.ServiceName(),
}),
VolumeMounts: nil, VolumeMounts: nil,
Ports: []v1.ContainerPort{ Ports: []v1.ContainerPort{
{ContainerPort: 80}, {ContainerPort: 80},
@ -273,7 +276,6 @@ func (c *K8sClient) UpdateIngress(a *AppModel) {
return return
} }
pt := netv1.PathTypePrefix pt := netv1.PathTypePrefix
//nginx := "nginx"
k, v := a.GetLabel() k, v := a.GetLabel()
label := map[string]string{k: v} label := map[string]string{k: v}
ingress := &netv1.Ingress{ ingress := &netv1.Ingress{
@ -281,18 +283,19 @@ func (c *K8sClient) UpdateIngress(a *AppModel) {
Name: a.IngressName(), Name: a.IngressName(),
Labels: label, Labels: label,
Annotations: map[string]string{ Annotations: map[string]string{
"nginx.ingress.kubernetes.io/rewrite-target": "/$2",
//"traefik.ingress.kubernetes.io/router.middlewares": "default-strip-prefix-1@kubernetescrd", //"traefik.ingress.kubernetes.io/router.middlewares": "default-strip-prefix-1@kubernetescrd",
}, },
}, },
Spec: netv1.IngressSpec{ Spec: netv1.IngressSpec{
IngressClassName: UnnamedPointer("nginx"),
Rules: []netv1.IngressRule{ Rules: []netv1.IngressRule{
{ {
//Host: a.ServiceName(),
IngressRuleValue: netv1.IngressRuleValue{ IngressRuleValue: netv1.IngressRuleValue{
HTTP: &netv1.HTTPIngressRuleValue{ HTTP: &netv1.HTTPIngressRuleValue{
Paths: []netv1.HTTPIngressPath{ Paths: []netv1.HTTPIngressPath{
{ {
Path: "/" + a.ServiceName(), Path: "/" + a.ServiceName() + "(/|$)(.*)",
PathType: &pt, PathType: &pt,
Backend: netv1.IngressBackend{ Backend: netv1.IngressBackend{
Service: &netv1.IngressServiceBackend{ Service: &netv1.IngressServiceBackend{
@ -308,7 +311,6 @@ func (c *K8sClient) UpdateIngress(a *AppModel) {
}, },
}, },
}, },
//IngressClassName: &nginx,
}, },
} }
var err error var err error