kubernetes / k8s 접합 아 리 구름 부하 균형 r / 부하 균형

4509 단어 쿠 베 넷 스
생산 환경 에서 kubernetes 는 http 또는 https 서비스 만 제공한다 면 nginx - ingress 나 traefik 같은 7 층 부하 균형 소프트웨어 를 사용 할 수 있다. 물론 NodePort 를 통 해 http 나 tcp 서 비 스 를 노출 할 수도 있다.NodePort 에 노출 된 포트 번 호 를 직접 사용 하지 않 고 서버 가 아 리 클 라 우 드 에서 실행 되 고 있다 면 아 리 클 라 우 드 가 제공 하 는 Kubernetes Cloud Controller Manager 를 사용 하여 TCP 서비스 나 http / https 서 비 스 를 대외 적 으로 노출 할 수 있 습 니 다.
전제:
1. 아 리 운 에서 ecs 몇 대 구 매
2. 아 리 운 의 ecs 에 쿠 베 르 네 스 군집 을 만 들 었 는데 여 기 는 쿠 베 르 네 스 1.9.0 을 예 로 들 면
3. 아 리 운 에서 공중 망 의 부하 균형 구 매
아 리 클 라 우 드 의 부하 균형 과 쿠 베 르 네 스 통합 을 설정 할 수 있 습 니 다.다음은 설정 절차 입 니 다.
  • 각 ecs 에 대응 하 는 regionId 와 ecsId 를 먼저 가 져 오 면 명령 echo ` curl - s 를 사용 할 수 있 습 니 다.http://100.100.100.200/latest/meta-data/region-id`.`curl -s http://100.100.100.200/latest/meta-data/instance-id얻다
  • apiserver, controller - manager, kubelet 을 모두 시작 매개 변 수 를 추가 합 니 다. --cloud - provider = external, 그리고 kubelet 에 -- provider - id = 위 에서 얻 은 것 을 추가 합 니 다.
  • 알 리 의 Access Key Id 와 Access Key Secret (이 두 가지 값 은 알 리 의 콘 솔 에서 찾 을 수 있 습 니 다) 를 저장 하기 위해 시 크 릿 을 만 들 고 알 리 클 라 우 드 - secret. yaml 파일 을 만 듭 니 다. 다음
    apiVersion: v1
    kind: Secret
    metadata:
      name: alicloud-config
      namespace: kube-system
    data:
      # insert your base64 encoded AliCloud access id and key here, ensure there's no trailing newline:
      # to base64 encode your token run:
      #      echo -n "abc123abc123doaccesstoken" | base64
      access-key-id: ""
      access-key-secret: ""
    이곳 의 id 와 시 크 릿 은 알 리 콘 솔 에서 얻 은 것 을 base 64 로 인 코딩 한 다음 위 파일 로 교체 하면 됩 니 다.그리고 kubectl apply - f alicloud - secret. yaml 로 대응 하 는 secret 를 만 듭 니 다.
  • 다음 에 알 리 클 라 우 드 - controller - manager. yaml 파일 을 작성 합 니 다. 다음
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: alicloud-controller-manager
      namespace: kube-system
    spec:
      replicas: 1
      revisionHistoryLimit: 2
      template:
        metadata:
          labels:
            app: alicloud-controller-manager
        spec:
          dnsPolicy: Default
          tolerations:
            # this taint is set by all kubelets running `--cloud-provider=external`
            - key: "node.cloudprovider.kubernetes.io/uninitialized"
              value: "true"
              effect: "NoSchedule"
          containers:
          - image: registry.cn-hangzhou.aliyuncs.com/kube-test/alicloud-controller-manager:v0.1.0
            name: alicloud-controller-manager
            command:
              - /alicloud-controller-manager
              # set leader-elect=true if you have more that one replicas
              - --leader-elect=false
              - --allocate-node-cidrs=true
              # set this to what you set to controller-manager or kube-proxy
              - --cluster-cidr=10.0.6.0/24
              # if you want to use a secure endpoint or deploy in a kubeadm deployed cluster, you need to use a kubeconfig instead.
              - --master=10.0.0.10:8080
            env:
              - name: ACCESS_KEY_ID
                valueFrom:
                  secretKeyRef:
                    name: alicloud-config
                    key: access-key-id
              - name: ACCESS_KEY_SECRET
                valueFrom:
                  secretKeyRef:
                    name: alicloud-config
                    key: access-key-secret
    위 에 있 는 빨 간 글자 부분 을 주의 하고 자신의 설정 상황 에 따라 교체 합 니 다.마찬가지 로, kubectl apply - f alicloud - controller - manager. yaml 를 사용 하여 해당 하 는 deployment
  • 를 만 듭 니 다.

  • 그리고 서 비 스 를 만 들 수 있 습 니 다. 예 를 들 어 제 가 아래 에 zookeeper 서 비 스 를 만 들 겠 습 니 다.
    apiVersion: v1
    kind: Service
    metadata:
      name: zookeeper-master
      labels:
        app: zookeeper-master
      namespace: xxxxx
    spec:
      ports:
      - port: 2181
        targetPort: 2181
        protocol: TCP
        name: main-port
      selector:
        app: zookeeper-master
      type: LoadBalancer
    이때 kubectl get svc 를 통 해 대응 하 는 서비스 가 이미 external - ip 가 있 음 을 볼 수 있 습 니 다.
    kubernetes/k8s接合阿里云LoadBalancer/负载均衡_第1张图片
  • 아 리 콘 솔 에서 부하 균형 을 백 엔 드 서버 에 설정 하고 k8s 의 node 노드 를 모두 추가 해 야 합 니 다.
  • 좋은 웹페이지 즐겨찾기