• 学习kubernetes——部署Ingress


    一、安装Ingress

      官方文档:https://kubernetes.github.io/ingress-nginx/deploy/

      由于证书问题,我们可以把ingress安装在主节点

      下载:https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml

      修改下面的配置:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-ingress-controller
      namespace: ingress-nginx
      labels:
        app.kubernetes.io/name: ingress-nginx
        app.kubernetes.io/part-of: ingress-nginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
      template:
        metadata:
          labels:
            app.kubernetes.io/name: ingress-nginx
            app.kubernetes.io/part-of: ingress-nginx
          annotations:
            prometheus.io/port: "10254"
            prometheus.io/scrape: "true"
        spec:
          # wait up to five minutes for the drain of connections
          terminationGracePeriodSeconds: 300
          serviceAccountName: nginx-ingress-serviceaccount
          nodeSelector:
            kubernetes.io/os: linux
        # 安装在主节点
    nodeName: kubenetes-node1
    # 增加 hostNetwork: true,意思是开启主机网络模式,暴露 Nginx 服务端口 80

        hostNetwork: true containers:
    - name: nginx-ingress-controller image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.26.2 args: - /nginx-ingress-controller - --configmap=$(POD_NAMESPACE)/nginx-configuration - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services - --udp-services-configmap=$(POD_NAMESPACE)/udp-services - --publish-service=$(POD_NAMESPACE)/ingress-nginx - --annotations-prefix=nginx.ingress.kubernetes.io

      然后执行

    kubectl apply -f mandatory.yaml

      查看pods

      

    NAMESPACE              NAME                                         READY   STATUS    RESTARTS   AGE
    ingress-nginx          nginx-ingress-controller-65c9f74bcf-xp988    1/1     Running   0          15m

      

    二、测试

      1、部署测试服务

      这里我们部署nginx作为测试服务

      新建 test_nginx.yaml

      

    apiVersion: v1
    kind: Service
    metadata:
      name: service-test-nginx
      namespace: default
    spec:
      selector:
        app: test-nginx
      ports:
      - name: http
        port: 80
        targetPort: 80
    
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: test-nginx
      namespace: default
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: test-nginx
      template:
        metadata:
          labels:
            app: test-nginx
        spec:
          containers:
          - name: test-nginx
            image: 192.168.56.104:5000/nginx:v1
            imagePullPolicy: IfNotPresent
            ports:
            - name: nginx
              containerPort: 80

      运行 kubectl apply -f test_nginx.yaml

      查看是否部署成功

      

    [root@kubernetes-node1 kubernetes]# kubectl get pods -n default
    NAMESPACE              NAME                                         READY   STATUS    RESTARTS   AGE
    default                test-nginx-595ff469f4-28wg7                  1/1     Running   0          20s
    default                test-nginx-595ff469f4-zjrbg                  1/1     Running   0          20s

      2、部署对应的ingress

      新建 test_nginx_ingress.yaml 内容如下:

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: service-test-nginx
      namespace: default
      annotations:
        kubernetes.io/ingress.class: "nginx"
    spec:
      rules:
      - host: nginx.test.com
        http:
          paths:
          - path:
            backend:
              serviceName: service-test-nginx
              servicePort: 80

      然后添加hosts

      ip 为主节点的ip,域名为ingress中配置的域名

    192.168.56.104 nginx.test.com

      打开浏览器输入 nginx.test.com

  • 相关阅读:
    基于FPGA的均值滤波算法实现
    QuartusII 13.0 PLL IP Core调用及仿真
    varnish-4.x VCL之grace mode
    varnish-4.x VCL之cookie及缓存时间
    varnish-4.x VCL之强制cache miss
    Mariadb-Galera10二进制包安装
    MariaDB Replication
    MariaDB 使用CONNECT存储引擎
    MariaDB 使用TokuDB存储引擎
    Ubuntu启用VNC服务的配置
  • 原文地址:https://www.cnblogs.com/lilinwei340/p/12115664.html
Copyright © 2020-2023  润新知