使用AKO为TKG提供LoadBalancer
本文记录了使用AKO(AVI)为TKG提供对外LoadBalancer服务的配置过程。
TKG的介绍请参考:Tanzu Kubernetes Grid介绍
TKG以及其安装配置参考:安装 Tanzu Kubernetes Grid
Tanzu Kubernetes Grid基本操作
环境
项目 | 内容 | 备注 |
---|---|---|
VMware ESXi | 7.0.1 | 17325551 |
vCenter Server | 7.0.1.00300 | 17491101 |
NSX-T | 3.11 | 3.1.1.0.0.17483185 |
Tanzu Kubernetes Grid CLI | 1.21 | tkg-linux-amd64-v1.2.1+vmware.1 |
kubectl cluster cli | v1.19.3 | kubectl-linux-v1.19.3 |
Client OS | CentOS 7 | CentOS-7-x86_64-DVD-2009.iso |
AVI Controller | 20.1.3 | AKO 1.3.3 |
NSX-T | 3.1 |
安装过程
AVI 配置准备
AVI的环境沿用在前面文:实现VMware Horizon+负载均衡(AVI)中的环境。
IP网段配置
本次使用的地址段是172.20.0.0/24,为此段ip进行预配置:
导航到Infrastructure–>Networks–>Default-Cloud,编辑172.20.0.0/24网段
增加Subnet。
导航到Templates–>Profiles–>IPAM/DNS Profiles,编辑原有IPAM-VMLAB,在Default-Cloud增加172.20.0.0/24网段。
新增SE-Group
为了和前面的环境区分,配置新的SE Group,导航到Infrastructure–>Service Engine Group–>CREATE
TKG Cluster 配置
参数修改
- 已经安装好TKG 管理Cluster和TKG Cluster:
[root@hop-172 ~]# kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACEmgmt-admin@mgmt mgmt mgmt-admin tanzu-cluster-admin@tanzu-cluster tanzu-cluster tanzu-cluster-admin - tanzu20-cluster-admin@tanzu20-cluster tanzu20-cluster tanzu20-cluster-admin
- CentOS跳板机已经安装好Helm
- 增加repository到 helm CLI
helm repo add ako https://projects.registry.vmware.com/chartrepo/ako
搜索 Charts for AKO:
[root@hop-172 ~]# helm search repo
NAME CHART VERSION APP VERSION DESCRIPTION
ako/ako 1.3.3 1.3.3 A helm chart for Avi Kubernetes Operator
ako/ako-operator 1.3.1 1.3.1 A Helm chart for Kubernetes AKO Operator
ako/amko 1.3.1 1.3.1 A helm chart for Avi Kubernetes Operator
- 利用命令获取参数,并根据AVI环境进行编辑。
helm show values ako/ako --version 1.3.3 > values.yaml
- VALUES修改的内容:
ClusterName:
KOSettings:logLevel: WARN #enum: INFO|DEBUG|WARN|ERRORfullSyncFrequency: '1800' # This frequency controls how often AKO polls the Avi controller to update itself with cloud configurations.apiServerPort: 8080 # Internal port for AKO's API server for the liveness probe of the AKO pod default=8080deleteConfig: 'false' # Has to be set to true in configmap if user wants to delete AKO created objects from AVI disableStaticRouteSync: 'false' # If the POD networks are reachable from the Avi SE, set this knob to true.clusterName: 'tanzu20-cluster' # A unique identifier for the kubernetes cluster, that helps distinguish the objects for this cluster in the avi controller. // MUST-EDIT
网络参数:
NetworkSettings:## This list of network and cidrs are used in pool placement network for vcenter cloud.## Node Network details are not needed when in nodeport mode / static routes are disabled / non vcenter clouds.nodeNetworkList: []subnetIP: '172.20.0.0' # Subnet IP of the vip networksubnetPrefix: '24' # Subnet Prefix of the vip networknetworkName: 'ls-172.20.0' # Network Name of the vip networkenableRHI: false # This is a cluster wide setting for BGP peering.
AVI参数:
ControllerSettings:serviceEngineGroupName: se-group # Name of the ServiceEngine Group.controllerVersion: 20.1.2 # The controller API versioncloudName: Default-Cloud # The configured cloud name on the Avi controller.controllerHost: '10.105.130.55' # IP address or Hostname of Avi ControllertenantsPerCluster: 'false' # If set to true, AKO will map each kubernetes cluster uniquely to a tenant in AvitenantName: admin # Name of the tenant where all the AKO objects will be created in AVI. // Required only if tenantsPerCluster is set to True
注意:AVI到版本是20.1.3,可是实测不能通过。改为20.1.2可以成功。
AKO安装
利用上文修改好的value.yaml文件,安装AKO
root@hop-172 ~]# helm install ako/ako --generate-name --version 1.3.3 -f values.yaml -n avi-system
NAME: ako-1613991974
LAST DEPLOYED: Mon Feb 22 11:06:15 2021
NAMESPACE: avi-system
STATUS: deployed
REVISION: 1
查看pod情况
[root@hop-172 ~]# kubectl get po -n avi-system
NAME READY STATUS RESTARTS AGE
ako-0 1/1 Running 0 11s
[root@hop-172 ~]# helm list -n avi-system
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
ako-1613991974 avi-system 1 2021-02-22 11:06:15.446844648 +0000 UTC deployed ako-1.3.3 1.3.3
验证
在Cluster上利用yaml文件创建Deployment,指定Service type为LoadBalancer
apiVersion: v1
kind: Service
metadata:name: hello-kubernetes
spec:type: LoadBalancerports:- port: 80targetPort: 8080selector:app: hello-kubernetes
---
apiVersion: apps/v1
kind: Deployment
metadata:name: hello-kubernetes
spec:replicas: 3selector:matchLabels:app: hello-kubernetestemplate:metadata:labels:app: hello-kubernetesspec:containers:- name: hello-kubernetesimage: paulbouwer/hello-kubernetes:1.5ports:- containerPort: 8080env:- name: MESSAGEvalue: I just deployed Web Service via AVI for pod Cluster!!
查看SVC情况:
[root@hop-172 ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-kubernetes LoadBalancer 111.69.112.27 172.20.0.100 80:30321/TCP 85m
kubernetes ClusterIP 111.64.0.1 <none> 443/TCP 114m
可以看到这里的外部IP地址172.20.0.100,正是在AVI 172.20.0.0/24中配置的地址段172.20.0.100-172.20.0.149中的一个。
在AVI上查看:
体验效果
参考文档:
avi-helm-charts
以上。
使用AKO为TKG提供LoadBalancer相关推荐
- 为私有Kubernetes集群创建LoadBalancer服务
MetalLB - 可以为私有 Kubernetes 集群提供LoadBalancer类型的负载均衡支持. 在Kubernetes集群中,可以使用Nodeport.Loadbalancer和Ingre ...
- Knative 暂时不会捐给任何基金会 | 云原生生态周报 Vol. 22
作者 | 新胜.心贵.进超.元毅.衷源 业界要闻 谷歌:不会向任何基金会捐赠 Knative 自 Knative 项目开始以来,一直存在关于是否将 Knative 捐赠给基金会(例如 CNCF)的疑问 ...
- Ribbon源码解析(一)
目录 介绍 引入 关键组件 Modules模块 Ribbon和Spring-Cloud-Loadbalancer Core IClient RetryHandler DefaultLoadBalanc ...
- 在 Kubernetes 集群中使用 MetalLB 作为 Load Balancer(上)
作者 | Addo Zhang 来源 | 云原生指北 TL:DR 网络方面的知识又多又杂,很多又是系统内核的部分.原本自己不是做网络方面的,系统内核知识也薄弱.但恰恰是这些陌生的内容满满的诱惑,加上现 ...
- Argo CD系列视频图文版之手把手教你搭建Argo CD 实验环境
开篇 本期视频,我们一起来手把手的搭建实验环境.为了节省资源,我们部署 All-In-One K8S环境,也就是所有 kubernetes 资源,运行在一台服务器上. 视频直达 第一部分视频 第二部分 ...
- kubernetes上部署rook-ceph存储系统
文章目录 1. 简单说说为什么用rook 2. rook-ceph部署 2.1 环境 2.2 Rook Operator部署 2.3 Ceph集群创建 2.3.1 标识osd节点 2.3.2 yaml ...
- Use Octavia to Implement HTTPS Health Monitors (by quqi99)
几张图感性认识ocatvia 问题 采用Neutron LBaaS v2实现HTTPS Health Monitors时的配置如下(步骤见附件 - Neutron LBaaS v2) backend ...
- KubeFed 集群联邦的演进和架构概览
KubeFed 集群联邦的演进和架构概览 Kubernetes 集群联邦 Kubernetes 从 1.8 版本起就声称单集群最多可支持 5000 个节点和 15 万个 Pod,我相信很少有公司会部署 ...
- Step by step:安装 Tanzu Kubernetes Grid
简介 本文的目的是实践Tanzu Kubernetes Grid(以下简称TKG)的安装和部署.有关TKG的介绍请参考:Tanzu Kubernetes Grid介绍 使用环境 项目 内容 备注 VM ...
最新文章
- Waymo CEO:将在卡车领域商用无人驾驶技术
- jsp页面获取参数的方法(url解析、el表达式赋值、session取值)【原创】
- php页面栏目访问权限,PHPCMS 栏目和内容浏览权限的解决方法
- Gargari and Permutations CodeForces - 463D(建图+记忆化搜索)
- AB-string CodeForces - 1238D(思维)
- Codeforces Round #686 (Div. 3) F. Array Partition 二分 + 线段树
- python 结构数组_Python数组
- simplejson.scanner.JSONDecodeError: Extra data: line 1 column 22089 - line 1 column 22090
- 怎样往mysql里添加数据_怎么往mysql表里添加数据
- 前端每日一算(我掐指一算,這题不难~入门啊入门)
- pands库中的一些函数用法
- 中国电信与阿里巴巴签署全面战略合作协议
- MySQL中表的增删查改操作(CRUD)
- 香橙派装php_【香橙派】安装宝塔面板 orange pi
- iOS 朋友圈点赞评论,发布朋友圈,想要的都有
- 乳腺数据DDSM标注overlay文件python处理
- Instant Neural Graphics Primitives with a Multiresolution Hash Encoding 翻译
- CGB2106-Day01
- iphone如何最快已读全量未读短信
- js实现谷歌网站统计