代码改变世界

k8s周边组件安装-ingress

2025-11-11 20:30  luoguoling  阅读(6)  评论(0)    收藏  举报

一.ingress安装

wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.11.2/deploy/static/provider/cloud/deploy.yaml
sed -i 's#registry.k8s.io/ingress-nginx/controller:v1.11.2@sha256:.*#registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.11.2#' deploy.yaml
sed -i 's#registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:.*#registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.4.3#' deploy.yaml
sed -i 's#registry.k8s.io/defaultbackend-amd64:.*#registry.cn-hangzhou.aliyuncs.com/google_containers/defaultbackend-amd64:1.5#' deploy.yaml
需要修改以下参数:
spec:
  replicas: 1 # ingress节点数
  template:
    ……
    spec:
      dnsPolicy: ClusterFirstWithHostNet				# 配置DNS策略,实现pod可以访问集群内外的域名 
      hostNetwork: true                         # 新增。开启host网络,提高网络入口的网络性能
      nodeSelector:                             # 设置node筛选器,在特定label的节点上启动
        ingress: "true"                         # 修改。调度至IngressProxy: "true"的节点
# 修改service类型为nodeport
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
    app.kubernetes.io/version: 1.13.1
  name: ingress-nginx-controller
  namespace: ingress-nginx
spec:
……
  type: NodePort
运行结果
[root@k8s-master opt]# kubectl get po -n ingress-nginx
NAME                                       READY   STATUS      RESTARTS   AGE
ingress-nginx-admission-create-n8c9f       0/1     Completed   0          14h
ingress-nginx-admission-patch-fxm4k        0/1     Completed   0          14h
ingress-nginx-controller-bc596b7db-p4vqq   1/1     Running     0          111s
[root@k8s-master opt]# kubectl get service -n ingress-nginx
NAME                                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             NodePort    10.105.250.241   <none>        80:30464/TCP,443:30691/TCP   14h
ingress-nginx-controller-admission   ClusterIP   10.106.31.45     <none>        443/TCP                      14h

2 验证ingress

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
spec:
  replicas: 1
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: myapp
        image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:1.25.5
        ports:
        - containerPort: 80
          name: http
        resources:
          limits:
            cpu: "1"
            memory: 1Gi
          requests:
            cpu: 100m
            memory: 128Mi
---
apiVersion: v1
kind: Service
metadata:
  name: myapp-svc
spec:
  selector:
    app: myapp
  ports:
  - port: 80
    targetPort:  80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: myapp-ingreess
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  ingressClassName: nginx
  rules:
  - host: myapp.local.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: myapp-svc
            port:
              number: 80
kubectl apply -f nginx.yaml
修改hosts
x.x.x.x myapp.local.com
浏览器验证即可