ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

AKS (5) 使用AKS内网负载均衡器-自动创建内网IP地址

2022-03-09 23:00:34  阅读:325  来源: 互联网

标签:subnet 负载 run AKS internal 均衡器 内网


  《Windows Azure Platform 系列文章目录

 

  我们在使用Azure AKS的时候,还可以把服务暴露在内网负载均衡器上,这样公网的用户无法访问AKS集群上的服务。

  只有和AKS在同一个内网,或者和AKS VNet打通了Peering点对点互联的其他虚拟网络,才可以访问该AKS上对内提供的服务。

 

  以我的环境为例:

  (1)AKS名称为LeiAKS01,该AKS在创建的时候,使用的是Managed Identity

  (2)AKS使用的虚拟网络为aks-rg-vnet

 

  1.首先我们在虚拟网络里,选择到这个虚拟网络aks-rg-vnet

  2.选择Access Control (IAM),点击ADD,如下图:

   

  3.选择Role为网络参与者(network contributor)。步骤略

  4.在member里,选择managed indeity,选中需要设置的aks服务

  

  5.最后选择Create即可

  6.操作以后,在虚拟网络的IAM里,可以查看到这个AKS信息。如下图:  

  7.操作完毕后,需要等待IAM生效。或者直接把AKS重启一下,立刻生效。

  

  8.然后我们的AKS使用的虚拟网络VNet的subnet结构如下:

  (1) default subnet,CIDR: 10.240.0.0/16,是AKS CNI网络使用的

  (2) lb-subnet,CIDR: 10.241.0.0/24,专门用来创建内部负载均衡器的内网IP地址的

  (3) vm-subnet,CIDR: 10.242.0.0/24,专门用来创建内网客户端虚拟机的

 

  9.我们准备2个yaml file,分别如下:

  privatelb-nginx80.yaml。

  注意需要设置的内容如下:

  -  service.beta.kubernetes.io/azure-load-balancer-internal,说明要使用内网负载均衡器

  -  service.beta.kubernetes.io/azure-load-balancer-internal-subnet,指定内网负载均衡器需要的虚拟网络子网名称

apiVersion: v1
kind: Service
metadata:
  name: internal-80
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-internal: "true"
    service.beta.kubernetes.io/azure-load-balancer-internal-subnet: "lb-subnet"
spec:
  type: LoadBalancer
  loadBalancerIP: 10.241.0.4
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: testapp01
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    run: testapp01
  name: testapp01
spec:
  replicas: 1
  selector:
    matchLabels:
      run: testapp01
  template:
    metadata:
      labels:
        run: testapp01
    spec:
      containers:
      - image: nginx
        name: nginx

 

  privatelb-nginx81.yaml

apiVersion: v1
kind: Service
metadata:
  name: internal-81
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-internal: "true"
    service.beta.kubernetes.io/azure-load-balancer-internal-subnet: "lb-subnet"
spec:
  type: LoadBalancer
  loadBalancerIP: 10.241.0.4
  ports:
  - port: 81
    protocol: TCP
    targetPort: 80
  selector:
    run: testapp02
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    run: testapp02
  name: testapp02
spec:
  replicas: 1
  selector:
    matchLabels:
      run: testapp02
  template:
    metadata:
      labels:
        run: testapp02
    spec:
      containers:
      - image: nginx
        name: nginx

 

  10.我们通过kubectl apply,分别执行这2个yaml file。步骤略。

  可以通过kubectl get svc,查看到service的EXTERNAL-IP,为内网IP地址。图略。

  

  11.我们在查看Azure 负载均衡器,会查看到AKS自动创建了一个新的创建、面向内网的负载均衡器,该负载均衡器的名称由系统指定。

  且自动设置了后端池、运行状况探测,负载均衡器规则等等。截图略。

  

  12.我们通过vm-subnet子网里,创建新的Azure虚拟机。再通过该虚拟机作为跳板,新的创建、面向内网的负载均衡器地址。

  分别访问80端口和81端口,就可以访问到这2个Nginx服务。截图略。

  

 

  

标签:subnet,负载,run,AKS,internal,均衡器,内网
来源: https://www.cnblogs.com/threestone/p/15987542.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有