zoukankan      html  css  js  c++  java
  • k8s二进制部署

    配置traefik资源清单
    rbac.yaml

    配置traefik资源清单
    rbac.yaml
    
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: traefik-ingress-controller
      namespace: kube-system
    ---
    apiVersion: rbac.authorization.k8s.io/v1beta1
    kind: ClusterRole
    metadata:
      name: traefik-ingress-controller
    rules:
      - apiGroups:
          - ""
        resources:
          - services
          - endpoints
          - secrets
        verbs:
          - get
          - list
          - watch
      - apiGroups:
          - extensions
        resources:
          - ingresses
        verbs:
          - get
          - list
          - watch
    ---
    kind: ClusterRoleBinding
    apiVersion: rbac.authorization.k8s.io/v1beta1
    metadata:
      name: traefik-ingress-controller
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: traefik-ingress-controller
    subjects:
    - kind: ServiceAccount
      name: traefik-ingress-controller
      namespace: kube-system

    daemonset.yaml

    apiVersion: extensions/v1beta1
    kind: DaemonSet
    metadata:
    name: traefik-ingress
    namespace: kube-system
    labels:
    k8s-app: traefik-ingress
    spec:
    template:
    metadata:
    labels:
    k8s-app: traefik-ingress
    name: traefik-ingress
    spec:
    serviceAccountName: traefik-ingress-controller
    terminationGracePeriodSeconds: 60
    containers:
    - image: harbor.od.com/public/traefik:v1.7.2
    name: traefik-ingress
    ports:
    - name: controller
    containerPort: 80
    hostPort: 81
    - name: admin-web
    containerPort: 8080
    securityContext:
    capabilities:
    drop:
    - ALL
    add:
    - NET_BIND_SERVICE
    args:
    - --api
    - --kubernetes
    - --logLevel=INFO
    - --insecureskipverify=true
    - --kubernetes.endpoint=https://10.4.7.10:7443
    - --accesslog
    - --accesslog.filepath=/var/log/traefik_access.log
    - --traefiklog
    - --traefiklog.filepath=/var/log/traefik.log
    - --metrics.prometheus

    service.yaml

    kind: Service
    apiVersion: v1
    metadata:
    name: traefik-ingress-service
    namespace: kube-system
    spec:
    selector:
    k8s-app: traefik-ingress
    ports:
    - protocol: TCP
    port: 80
    name: controller
    - protocol: TCP
    port: 8080
    name: admin-web

    ingress.yaml

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
    name: traefik-web-ui
    namespace: kube-system
    annotations:
    kubernetes.io/ingress.class: traefik
    spec:
    rules:
    - host: traefik.od.com
    http:
    paths:
    - path: /
    backend:
    serviceName: traefik-ingress-service
    servicePort: 8080

    交付traefik到k8s

    [root@hdss7-21 ~]# kubectl apply -f http://k8s-yaml.od.com/traefik/traefik_1.7.2/rbac.yaml
    [root@hdss7-21 ~]# kubectl apply -f http://k8s-yaml.od.com/traefik/traefik_1.7.2/daemonset.yaml
    [root@hdss7-21 ~]# kubectl apply -f http://k8s-yaml.od.com/traefik/traefik_1.7.2/service.yaml
    [root@hdss7-21 ~]# kubectl apply -f http://k8s-yaml.od.com/traefik/traefik_1.7.2/ingress.yaml
    [root@hdss7-21 ~]# kubectl get pods -n kube-system -o wide
    NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
    coredns-6b6c4f9648-4vtcl 1/1 Running 1 24h 172.7.21.3 hdss7-21.host.com <none> <none>
    traefik-ingress-4gm4w 1/1 Running 0 77s 172.7.21.5 hdss7-21.host.com <none> <none>
    traefik-ingress-hwr2j 1/1 Running 0 77s 172.7.22.3 hdss7-22.host.com <none> <none>
    [root@hdss7-21 ~]# kubectl get ds -n kube-system 
    NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
    traefik-ingress 2 2 2 2 2 <none> 107s

    配置外部nginx负载均衡

    [root@hdss7-11 ~]# vim /etc/nginx/conf.d/od.com.conf
    server {
    server_name *.od.com;
    
    location / {
    proxy_pass http://default_backend_traefik;
    proxy_set_header Host $http_host;
    proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
    }
    }
    upstream default_backend_traefik {
    # 所有的nodes都放到upstream中
    server 10.4.7.21:81 max_fails=3 fail_timeout=10s;
    server 10.4.7.22:81 max_fails=3 fail_timeout=10s;
    }
    [root@hdss7-11 ~]# nginx -tq && nginx -s reload
  • 相关阅读:
    dedecms 织梦本地调试 后台反映非常慢的处理办法
    phpcms前端模板目录与文件结构分析图【templates】
    phpcms 思维导图
    Linux下文件的复制、移动与删除
    动态加载dll中的函数
    ava中关于String的split(String regex, int limit) 方法
    java.io.File中的 pathSeparator 与separator 的区别
    如何删除输入法记忆的词汇
    zip4j -- Java处理zip压缩文件的完整解决方案
    file.separator 和 / 区别
  • 原文地址:https://www.cnblogs.com/Wang-Hongwei/p/14145369.html
Copyright © 2011-2022 走看看