Um Tanzu Kubernetes release fornece a distribuição de software Kubernetes assinada e com suporte por VMware para uso com clusters TKG 2 em Supervisor. O formato TKR é atualizado para o TKG 2 para oferecer suporte a pacotes e vários sistemas operacionais.
Notas de versão do TKR
Consulte as Tanzu KubernetesNotas de Versão da versão para obter a lista completa de TKRs disponíveis, o que há de novo em cada versão, problemas conhecidos e compatibilidade de TKR com Supervisor e TKG 2. Consulte também vSphere with Tanzu Atualização, suporte e versões do Kubernetes.
Distribuição e Consumo de TKR
VMware distribui Tanzu Kubernetes releases por meio de uma rede de entrega de conteúdo. Você usa uma biblioteca de conteúdo vSphere para associar TKRs a vSphere Namespaces. Para automatizar o consumo de TKRs, use uma biblioteca de conteúdo assinada. Para ambientes com restrição de Internet, use uma biblioteca de conteúdo local.
Cada Tanzu Kubernetes release é distribuído como um modelo OVA. O Controlador TKR em Supervisor usa o modelo OVA para construir as VMs para nós de cluster TKG. O tamanho do disco da VM é definido pelo modelo TKR OVA. Você especifica os recursos de CPU e RAM usando classes de VM.
A biblioteca de conteúdo do TKR não tem escopo de namespace. Todos os vSphere Namespaces usam a mesma biblioteca de conteúdo TKR para TKG com Supervisor. A edição da biblioteca de conteúdo do TKR para um vSphere Namespace a atualizará para todos os outros.
Cadeia de Nomes de TKR
kubectl get tkr
para listar as imagens TKR que estão disponíveis para uso no
vSphere Namespace. Por exemplo:
kubectl get tkr NAME VERSION READY COMPATIBLE CREATED v1.16.14---vmware.1-tkg.1.ada4837 v1.16.14+vmware.1-tkg.1.ada4837 False False 19d v1.17.17---vmware.1-tkg.1.d44d45a v1.17.17+vmware.1-tkg.1.d44d45a False False 19d v1.18.19---vmware.1-tkg.1.17af790 v1.18.19+vmware.1-tkg.1.17af790 False False 19d v1.19.16---vmware.1-tkg.1.df910e2 v1.19.16+vmware.1-tkg.1.df910e2 False False 19d v1.20.12---vmware.1-tkg.1.b9a42f3 v1.20.12+vmware.1-tkg.1.b9a42f3 False False 19d v1.21.6---vmware.1-tkg.1.b3d708a v1.21.6+vmware.1-tkg.1.b3d708a True True 19d v1.22.9---vmware.1-tkg.1.cc71bc8 v1.22.9+vmware.1-tkg.1.cc71bc8 True True 19d v1.23.8---vmware.2-tkg.2-zshippable v1.23.8+vmware.2-tkg.2-zshippable True True 19d v1.23.8---vmware.3-tkg.1 v1.23.8+vmware.3-tkg.1 True True 19d
tkr.reference.name
. Se estiver usando a
API v1beta1, forneça a string TKR NAME completa no campo
topology.version
.
O nome do TKR na biblioteca de conteúdo precisa ser a cadeia de caracteres completa do TKR NAME. Se você estiver usando uma biblioteca de conteúdo assinada, a cadeia de caracteres Nome do TKR será criada para você. Se você estiver usando uma biblioteca de conteúdo local, certifique-se de que o nome dado ao TKR corresponda à cadeia de caracteres TKR NAME. Consulte biblioteca de conteúdo local para obter detalhes.
Compatibilidade TKR com Supervisor
Os TKRs são liberados e atualizados independentemente de Supervisor.
Para provisionar um cluster TKG, o TKR deve ser compatível com o componente Controlador TKG que é executado em Supervisor. Você não pode usar um TKR que não seja compatível com a instância Supervisor que está executando. Além disso, você deve certificar-se de que está executando um TKR compatível para a versão do Supervisor que você deseja fazer upgrade.
Você pode verificar a compatibilidade do TKR com Supervisor usando o comando kubectl get tkr
. A coluna COMPATIBLE retorna um booliano. True
significa que o TKR é compatível com Supervisor, False
significa que o TKR não é compatível com Supervisor.
Compatibilidade do TKR com o TKG 2
O TKG 2 é a versão mais recente do Tanzu Kubernetes Grid com novas funcionalidades, incluindo APIs de provisionamento. O TKG 2 foi introduzido com o vSphere 8. Consulte Provisionando clusters do TKG 2 em Supervisor para obter mais informações.
O formato TKR é diferente para clusters TKG 2 e para clusters TKG 1. Para provisionar um cluster do TKG 2, você deve usar um TKR não herdado. Se o TKR for um TKR herdado, ele só poderá ser usado para provisionar um cluster do TKG 1. As imagens TKR que não são compatíveis com o TKG 2 incluem o rótulo de anotação legacy-tkr
.
Você pode provisionar um cluster do TKG 1 em um Supervisor compatível, mas não pode aproveitar os recursos do TKG 2, a menos que use um TKR não herdado. Por exemplo, embora o comando kubectl get tkr
possa indicar que o TKR é compatível com Supervisor, se for um TKR herdado, ele só poderá ser usado para provisionar um cluster TKG 1.
Você pode verificar a compatibilidade do TKR com o TKG 2 usando os comandos kubectl get tkr -o yaml
e kubectl get tkr --show-labels
. Se o rótulo de anotação legacy-tkr
estiver presente, o TKR não poderá ser usado para provisionar um cluster do TKG 2.
legacy-tkr
. Isso significa que ele não pode ser usado para provisionar um cluster TKG 2. Esse TKR só pode ser usado para provisionar um cluster TKG 1 herdado.
kubectl get tkr v1.23.8---vmware.3-tkg.1 -o yaml
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: TanzuKubernetesRelease
metadata:
creationTimestamp: "2023-03-15T20:33:17Z"
finalizers:
- tanzukubernetesrelease.run.tanzu.vmware.com
generation: 1
labels:
os-arch: amd64
os-name: photon
os-type: linux
os-version: "3.0"
run.tanzu.vmware.com/legacy-tkr: ""
v1: ""
v1.23: ""
v1.23.8: ""
v1.23.8---vmware: ""
v1.23.8---vmware.3: ""
v1.23.8---vmware.3-tkg: ""
v1.23.8---vmware.3-tkg.1: ""
name: v1.23.8---vmware.3-tkg.1
--show-labels
para verificar se o TKR é compatível para provisionar clusters do TKG 2. O rótulo
legacy-tkr
está presente para que a imagem só possa ser usada para criar um cluster TKG 1.
kubectl get tkr v1.23.8---vmware.3-tkg.1 --show-labels
NAME VERSION READY COMPATIBLE CREATED LABELS
v1.23.8---vmware.3-tkg.1 v1.23.8+vmware.3-tkg.1 True True 19d os-arch=amd64,os-name=photon,os-type=linux,os-version=3.0,run.tanzu.vmware.com/legacy-tkr=,
legacy-tkr
está ausente da lista de rótulos.
kubectl get tkr v1.23.8---vmware.2-tkg.2-zshippable --show-labels NAME VERSION READY COMPATIBLE CREATED LABELS v1.23.8---vmware.2-tkg.2-zshippable v1.23.8+vmware.2-tkg.2-zshippable True True 19d os-arch=amd64,os-name=ubuntu,os-type=linux,os-version=20.04,v1.23.8---vmware.2-tkg.2-zshippable=,
-o yaml
também mostra que o rótulo
legacy-tkr
está ausente, indicando que o TKR pode ser usado para provisionar um cluster TKG 2.
kubectl get tkr v1.23.8---vmware.2-tkg.2-zshippable -o yaml apiVersion: run.tanzu.vmware.com/v1alpha3 kind: TanzuKubernetesRelease metadata: creationTimestamp: "2023-03-15T20:31:45Z" finalizers: - tanzukubernetesrelease.run.tanzu.vmware.com generation: 2 labels: os-arch: amd64 os-name: ubuntu os-type: linux os-version: "20.04" v1: "" v1.23: "" v1.23.8: "" v1.23.8---vmware: "" v1.23.8---vmware.2: "" v1.23.8---vmware.2-tkg: "" v1.23.8---vmware.2-tkg.2: "" v1.23.8---vmware.2-tkg.2-zshippable: "" name: v1.23.8---vmware.2-tkg.2-zshippable
-zshippable
não é um método confiável para determinar se o TKR é compatível com o TKG 2. Esse sufixo foi removido da cadeia de caracteres TKR NAME a partir da versão vSphere 8 U1. Você deve verificar o TKR quanto à presença do rótulo
legacy-tkr
para determinar se o TKR pode ser usado com o vSphere 8 para provisionar um cluster do TKG 2. Se você já tiver provisionado um cluster TKG 2 usando um TKR com o sufixo
-zshippable
, precisará alterar a URL da biblioteca de conteúdo para um local temporário durante a transição do uso desse sufixo. Consulte as
Tanzu KubernetesNotas de Versão da versão para obter detalhes.
TKR OSImage Format
O formato TKR OSImage oferece suporte a várias imagens do sistema operacional para um único TKR. Isso significa que há um único Tanzu Kubernetes release para uma versão específica do Kubernetes para todos os sistemas operacionais compatíveis, que atualmente são o PhotonOS e o Ubuntu. O OSImage padrão é PhotonOS.
apiVersion: run.tanzu.vmware.com/v1alpha3 kind: TanzuKubernetesCluster metadata: name: tkg2-cluster-ubuntu namespace: tkg2-cluster-ns annotations: run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu spec: topology: controlPlane: ... tkr: reference: name: v1.23.8---vmware.2-tkg.2-zshippable
apiVersion: run.tanzu.vmware.com/v1alpha3 kind: TanzuKubernetesCluster metadata: name: tkg2-cluster-multiOS namespace: tkg2-cluster-ubuntu annotations: //Worker's annotation run.tanzu.vmware.com/resolve-os-image.np-1: os-name=ubuntu spec: topology: controlPlane: tkr: reference: name: v1.23.8---vmware.2-tkg.2-zshippable replicas: 3 vmClass: guaranteed-medium storageClass: tkg2-storage-profile nodePools: - replicas: 3 name: np-1 vmClass: guaranteed-medium storageClass: tkg2-storage-profile
v1.21.6+vmware.1-tkg.1
) em vez da string de versão completa (
ubuntu-2004-v1.21.6---vmware.1-tkg.1
), deverá incluir a anotação do SO na especificação do cluster. Isso será verdadeiro se você estiver usando a API v1alpha3 ou a API vlapha2. Por exemplo:
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TanzuKubernetesCluster metadata: name: tkg-cluster-ubuntu namespace: tkg-cluster-ubuntu annotations: run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu spec: topology: controlPlane: replicas: 3 vmClass: guaranteed-medium storageClass: tkg-storage-policy tkr: reference: name: v1.21.6+vmware.1-tkg.1 nodePools: - name: worker-nodepool replicas: 3 vmClass: guaranteed-medium storageClass: tkg2-storage-policy tkr: reference: name: v1.21.6+vmware.1-tkg.1 settings: storage: defaultClass: tkg-storage-policy
Pacotes TKR
As imagens TKR compatíveis com o vSphere 8 são atualizadas para uma estrutura baseada em pacote para componentes do TKG 2, como a interface de armazenamento de contêiner (CSI) e a interface de rede de contêiner (CNI). Se você estiver usando a API v1beta, a alteração ou atualização desses componentes será feita usando definições de recursos personalizadas.
kubectl get tkr TKR-NAME -o yaml
kubectl get tkr v1.23.8---vmware.2-tkg.2-zshippable -o yaml
spec: bootstrapPackages: - name: antrea.tanzu.vmware.com.1.5.3+tkg.2-zshippable - name: vsphere-pv-csi.tanzu.vmware.com.2.6.0+vmware.1-tkg.1-zshippable - name: vsphere-cpi.tanzu.vmware.com.1.23.1+vmware.1-tkg.2-zshippable - name: kapp-controller.tanzu.vmware.com.0.38.4+vmware.1-tkg.2-zshippable - name: guest-cluster-auth-service.tanzu.vmware.com.1.0.0+tkg.2-zshippable - name: metrics-server.tanzu.vmware.com.0.6.1+vmware.1-tkg.2-zshippable - name: secretgen-controller.tanzu.vmware.com.0.9.1+vmware.1-tkg.2-zshippable - name: pinniped.tanzu.vmware.com.0.12.1+vmware.2-tkg.2-zshippable - name: capabilities.tanzu.vmware.com.0.26.0-dev-68-g09198af6+vmware.1 - name: calico.tanzu.vmware.com.3.22.1+vmware.1-tkg.2-zshippable
Consulte Exemplo de v1beta1: cluster com CNI do Calico para obter um exemplo de caso de uso.
Migrando tipos de SO do TKR
Não há suporte para atualizações de cluster no local entre sistemas operacionais TKR. Isso significa, por exemplo, que você não pode fazer upgrade de um cluster TKG usando o TKR versão 1.21 Photon para o TKR versão 1.22 Ubuntu.
- Usando o Velero, faça backup das cargas de trabalho do cluster TKG baseadas em Photon.
Consulte Fazendo backup e restaurando cargas de trabalho em clusters TKG 2 em Supervisor.
- Provisione um novo cluster TKG usando o Ubuntu TKR.
- Usando o Velero, restaure as cargas de trabalho do cluster TKG para o cluster Ubuntu.
Consulte Fazendo backup e restaurando cargas de trabalho em clusters TKG 2 em Supervisor.
Crie seu próprio TKR
A partir de uma versão específica do TKR, você pode criar imagens de máquina TKR personalizadas para clusters TKG 2 em execução no vSphere 8 Supervisor. Uma imagem de máquina personalizada empacota um sistema operacional e uma versão com suporte, uma versão do Kubernetes com base em um TKR lançado e quaisquer personalizações que você fizer.
Para criar imagens de máquina personalizadas para nós de cluster do TKG 2, use o VMware Image Builder.