乐趣区

关于云原生:TAP-系列文章2-Tanzu-Application-Platform-v11-安装配置步骤

Tanzu Application Platform v1.1 装置配置步骤


如上图所示,Tanzu Application Platform v1.1 的装置,次要分成以下步骤:

  • TAP 装置前的筹备;
  • 装置 Tanzu CLI 命令行工具与 Tanzu Cluster Essentials(Tanzu K8S 安装包治理套件);
  • 依据集群的应用角色,参考前文提到的内容,筹备 TAP Profiles 配置文件 tap-values.yaml;
  • 装置 Tanzu Application Platform v1.1;
  • 验证装置环境;

TAP 装置前的筹备

留神:Tanzu Application Platform v1.1 的官网装置阐明参考如下地位,本文旨在帮忙首次装置 TAP 的用户疾速配置和构建 TAP 运行环境。

留神:本文装置过程中的桌面 CLI 环境基于 MacOS&Linux 操作系统。对于 Windows CLI 环境的操作请参考官网装置文档。

筹备 VMware Tanzu Network 登录账号并下载 TAP 安装包

  • 登录 Tanzu Network 注册并下载 Tanzu Application Platfrom v1.1 packages;
  • 保障 TAP 的装置 K8S Cluster Worker 的网络可能拜访:https://registry.tanzu.vmware…;

DNS Records 的筹备

  • 筹备利用部署后的拜访域名,利用 TAP 部署的利用,部署实现后能够间接利用配置的域名进行拜访;装置前须要筹备好这个域名;例如:<app-name>.tap-app.example.vmware.com

Kubernetes Cluster 运行环境的筹备

以后 TAP v1.1 反对的 Upstream Kubernetes 版本:v1.21,v1.22,v1.23;

以后反对的 K8S 发行版的提供商:

  • Azure Kubernetes Service
  • Amazon Elastic Kubernetes Service
  • Google Kubernetes Engine
  • Tanzu Kubernetes Grid multicloud
  • vSphere with Tanzu v7.0 U3a

TAP 装置 Tanzu CLI 命令行工具与 Tanzu Cluster Essentials

  • 下载 VMware Tanzu Application Platform tanzu-cli,依据装置桌面 OS 下载 (tanzu-framework-bundle-windows, tanzu-framework-bundle-mac, or tanzu-framework-bundle-linux)
  • 装置 Tanzu CLI for Linux
# Move to the folder containing the downloaded file.
cd ~/Downloads

# Make a directory to extract the archive into
mkdir tanzu

# Extract the tar archive into your ~/tanzu directory
tar -xvf tanzu-framework-linux-amd64.tar -C ./tanzu

# Change your working directory to the extracted archive directory.
cd tanzu

# Run the install binary to complete the base installation.
sudo install cli/core/v0.11.2/tanzu-core-linux_amd64 /usr/local/bin/tanzu

# Install the Tanzu CLI Plugins
export TANZU_CLI_NO_INIT="true" 
tanzu plugin install --local cli all
  • 验证 Tanzu CLI 的装置
# Expect version: v0.11.2
tanzu version 

# Expect the package, secret, apps, services, and accelerator plugins to have a STATUS of 'installed'
tanzu plugin list 

装置 TAP Cluster Essentials 套件

前文说过,为了简化、角色化 TAP 的 K8S 环境装置;VMware TAP team 筹备了标准化的 TAP 装置套件,简化 TAP 的装置、配置(模板参数化,定制化)、降级(Upgrade)、模块参数更新;这些 Ops 性能,由 TAP Cluster Essentials 套件负责帮忙客户实现。

上面的装置过程依然以 Liunx 零碎作为客户的参考:

  • 登录 Tanzu Network,下载 Cluster Essentials for VMware Tanzu product。
  • 下载 tanzu-cluster-essentials-linux-amd64-1.1.0.tgz 到 Linux 桌面 Downloads folder。
  • 在 Terminal 中按如下步骤操作:
# Move to the Downloads folder
cd ~/Downloads

# Specify the VMware Cluster Essentials for Tanzu bundle details
export INSTALL_BUNDLE="registry.tanzu.vmware.com/tanzu-cluster-essentials/cluster-essentials-bundle@sha256:ab0a3539da241a6ea59c75c0743e9058511d7c56312ea3906178ec0f3491f51d"
export INSTALL_REGISTRY_HOSTNAME="registry.tanzu.vmware.com"
export INSTALL_REGISTRY_USERNAME='' # <- Insert Your Tanzu Network username
export INSTALL_REGISTRY_PASSWORD='' # <- Insert Your Tanzu Network password

# Make a folder for the extracted archive files
mkdir tanzu-cluster-essentials

# Extract the archive
tar -xvf tanzu-cluster-essentials-linux-amd64-1.1.0.tgz -C ./tanzu-cluster-essentials

# Move to the extracted folder
cd tanzu-cluster-essentials

# Install VMware Cluster Essentials for Tanzu
./install.sh
  • 装置验证如下:
# Ensure that kapp-controller and secretgen-controller are‘running’kubectl get pods --all-namespaces

装置 Tanzu Application Platform v1.1 – 安装包工具集

前文提到 TAP 的装置须要思考应用的角色,采纳适合的参考架构作为部署参考;上面的装置,假如的应用角色是 Ops 工程师,打算在繁多的 K8S 环境中验证 TAP 的全副性能,采纳 Full Profile 配置;将来再思考参考架构中提到的多角色,多集群配置的场景;

事实上,多角色、多集群的 TAP 部署 (Iterate、Build、Run、TAP GUI),在步骤上跟上面提到的装置完全一致,区别在于 tap-values.yml 文件的参数配置;本文通过 full profiles 的 tap-values.yml 给大家展现,用户能够依据集群的角色,自行裁剪 full profiles 的 tap-values.yml 以满足多集群部署的需要;更为具体的多集群部署须要留神的参数配置,请参考官网 TAP 装置文档;

  • 筹备 Tanzu Application Platform 利用 bundle 装置环境参数
# Create Tanzu Application Platform Install Environment Variables
export TAP_VERSION="1.1.0"
export TAP_NAMESPACE="tap-install"
export DOMAIN="example.com"
export APPS_DOMAIN="apps.example.com"

# Set the developer’s‘push’capable docker container registry details
export DOCKER_SERVER="https://index.docker.io/v1/"
export DOCKER_USERNAME='' # < Insert Your Docker Hub username
export DOCKER_PASSWORD='' # < Insert Your Docker Hub password (or Access Token if 2FA is enabled)

kubectl create ns $TAP_NAMESPACE
  • 筹备 Tanzu Application Platform 利用 bundle Tanzu Network 下载用户配置
tanzu secret registry add tap-registry \
  --username $INSTALL_REGISTRY_USERNAME \
  --password $INSTALL_REGISTRY_PASSWORD \
  --server $INSTALL_REGISTRY_HOSTNAME \
  --namespace $TAP_NAMESPACE \
  --export-to-all-namespaces \
  --yes 
  • 装置 Tanzu Application Platform 利用 bundle
tanzu package repository add tanzu-tap-repository \
  --url $INSTALL_REGISTRY_HOSTNAME/tanzu-application-platform/tap-packages:$TAP_VERSION \
  --namespace $TAP_NAMESPACE 
  • 装置 Tanzu Application Platform 利用 bundle,验证
# Check for STATUS:“Reconcile succeeded”tanzu package repository get tanzu-tap-repository --namespace $TAP_NAMESPACE 

# Check for a big list of ready to use packages
tanzu package available list --namespace $TAP_NAMESPACE

留神:Tanzu Application Platform 装置的过程中,受到客户网络环境的影响,可能会产生 tanzu CLI 超时退出的状况,这个时候无需对装置过程进行烦扰,零碎会持续装置,直至装置胜利;

装置 Tanzu Application Platform v1.1 – Iterate Profile 开发环境

TAP Iterate Profile 的装置次要针对 Dev 团队这个角色,当然也能够作为 Ops 团队相熟 TAP 时构建的测试环境;另外,TAP 的 Iterate 环境也比拟适宜 ISV 作为 COTS 的利用的开发、调试环境;

  • 下载并配置 Iterate Profile tap-values.yml
    留神:上面操作的运行依赖于后面章节配置的环境变量;
# Download the template file.
curl -o template-tap-values.yml https://raw.githubusercontent.com/benwilcock/TAPonLAP/main/TAPonLAPv1.1/template-tap-values-nix.yml

# Customize the template using the environment variables you created in step 1.
envsubst < template-tap-values.yml > tap-values.yml

  • 装置 TAP Iterate Profile

留神:TAP 的装置依赖于主机 /Host 性能、网络带宽等因素的影响,可能须要比拟久的工夫;在此期间如果产生 tanzu CLI 退出的状况,无需进行人工调试,期待至多 45min 后再通过根本的 Kubernetes 调试技巧进行故障排查。

tanzu package install tap -p tap.tanzu.vmware.com -v $TAP_VERSION \
  --values-file tap-values.yml \
  --poll-timeout 45m \
  --namespace $TAP_NAMESPACE
  • 装置 TAP Iterate 环境装置后的验证

装置 Tanzu Application Platform v1.1 – Full Profile 环境

TAP full profile 的装置过程跟 TAP Iterate profile 十分靠近,次要的不同点就是 tap-values.yml 的筹备;客户能够自行参考 TAP v1.1 官网装置手册中的 full profile 倡议的 tap-values.yml,作为装置初始配置,进行定制化,地位如下:

https://docs.vmware.com/en/Tanzu-Application-Platform/1.1/tap/GUID-install.html#install-profile

  • 装置 TAP Full Profile

留神:TAP 的装置依赖于主机 /Host 性能、网络带宽等因素的影响,可能须要比拟久的工夫;在此期间如果产生 tanzu CLI 退出的状况,无需进行人工调试,期待至多 45min 后再通过根本的 Kubernetes 调试技巧进行故障排查。

tanzu package install tap -p tap.tanzu.vmware.com -v $TAP_VERSION \
  --values-file tap-values.yml \
  --poll-timeout 45m \
  --namespace $TAP_NAMESPACE

Tanzu Application Platform v1.1 部署后,性能验证

  • 创立利用运行 Domain 与租户配置

运行在 TAP 中的托管利用,通过 Kubernetes Namespace 进行租户隔离;同时依据租户利用所在的 Namespace,调配一个拜访利用的 URL,供给用的使用者拜访;

上面的步骤,用来创立租户利用的 Kubernetes Namespace:

# Set the developer namespace value to 'default'
export TAP_DEV_NAMESPACE="default"

# Create a namespace for the developer to work in 
kubectl create ns $TAP_DEV_NAMESPACE

# Add the secret for the BUILD Container Registry 
tanzu secret registry add registry-credentials \
  --server $DOCKER_SERVER \
  --username $DOCKER_USERNAME \
  --password $DOCKER_PASSWORD \
  --namespace $TAP_DEV_NAMESPACE 

# Obtain the service accounts file 
curl -o serviceaccounts.yml https://raw.githubusercontent.com/benwilcock/TAPonLAP/main/TAPonLAPv1.1/serviceaccounts.yml

# Add the necessary RBAC Roles, Accounts, Bindings etc... 
kubectl -n $TAP_DEV_NAMESPACE apply -f "serviceaccounts.yml" 
  • 创立 TAP 托管的 Web 类型利用

在 TAP 的环境中,能够运行不同类型 (格调) 的利用,例如:传统 Spring MVC 格调的利用,或者基于 Microservice 架构的 API 格调的利用,比方:SpringBoot + Spring Cloud Service 类型的利用;上面的例子,演示一个基于 Spring Boot 的 API 格调的利用通过 TAP 进行装置、运行和拜访和托管;其它格调的利用的部署,参考官网文档或者征询 VMware 专家;

利用 Tanzu TAP 运行基于 K8S 的 Web 或者 API 利用,无需使用者提前进行 OCI 镜像的打包;平台服务负责利用 OCI 镜像的构建与 K8S 部署模板的实例化;TAP 开箱即用的模板引擎,甚至还负责利用的配置管理与蓝绿公布,K8S Reliability 等模板的实例化,极大的简化了 Dev 对 K8S 的利用流程;

# Create the workload
tanzu apps workload create tanzu-java-web-app \
  --git-repo https://github.com/sample-accelerators/tanzu-java-web-app \
  --git-branch main \
  --type web \
  --label app.kubernetes.io/part-of=tanzu-java-web-app \
  --label tanzu.app.live.view=true \
  --label tanzu.app.live.view.application.name=tanzu-java-web-app \
  --annotation autoscaling.knative.dev/minScale=1 \
  --namespace $TAP_DEV_NAMESPACE \
  --yes

# Watch the platform build the workload. Press Ctrl-C to exit.
tanzu apps workload tail tanzu-java-web-app --since 10m --timestamp

装置胜利后的验证如下:

结束语

Tanzu Application Platform 的装置具备高度的可定制以满足不同场景,角色,可用性等配置与装置需要;置信读者在实际 TAP 的装置过程中,肯定会遇到非凡的配置场景,环境等因素导致装置失败;这种状况,请浏览 TAPv1.0 官网装置手册,外面有更为具体的配置与环境阐明;Troubleshooting 技巧与工具的应用,以及遇到非凡问题后的 Support 渠道阐明;

作者简介:

毕建华,VMware 大中华区利用现代化部门高级解决方案架构师。多年来始终从事云原生相干畛域工作,包含零碎设计以及参加多种容器调度平台开发,部署,运维工作;包含,基于 Mesos、DCOS 平台,开发 Dbaas 框架;参加 Kubernetes 开源我的项目 KUDO 的开发与推广;CNCF 认证 CKA 工程师;VMware 认证 Spring Professional 工程师。

起源|公众号:VMwareTanzu 云原生

退出移动版