[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["わかりにくい","hardToUnderstand","thumb-down"],["情報またはサンプルコードが不正確","incorrectInformationOrSampleCode","thumb-down"],["必要な情報 / サンプルがない","missingTheInformationSamplesINeed","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-08-30 UTC。"],[],[],null,["# Migrate your AKS cluster\n\nThe predecessor version of GKE attached clusters is known as GKE attached clusters\n(previous generation). Migrating from the earlier\nversion of GKE attached clusters to the current generation gives you access to this\nfunctionality, including lifecycle management and Fleet registration. Migration\nis a one-way operation: once you have migrated to the current generation of\nGKE attached clusters, there is no way to return to GKE attached clusters (previous generation).\n\nVersion numbering policy\n------------------------\n\nThese documents refer to the GKE attached clusters version as the platform version,\nto distinguish it from the Kubernetes version. GKE attached clusters uses the same\nversion numbering convention as GKE - for example, 1.21.5-gke.1. When attaching\nor updating your cluster, you must choose a platform version whose minor version\nis the same as or one level below the Kubernetes version of your cluster. For\nexample, you can attach a cluster running Kubernetes v1.22.\\* with\nGKE attached clusters platform version 1.21.\\* or 1.22.\\*.\n\nThis lets you upgrade your cluster to the next minor version before upgrading\nGKE attached clusters.\n\nEnsure Workload Identity is enabled\n-----------------------------------\n\nExisting clusters from GKE attached clusters (previous generation) must have Workload\nIdentity enabled before being migrated to the current generation of GKE attached clusters.\n\nTo determine whether WI is enabled, run the following command and check\nthe output for any Workload Identity field: \n\n gcloud container hub memberships describe \u003cvar translate=\"no\"\u003eMEMBERSHIP_NAME\u003c/var\u003e\n\nIf Workload Identity is not enabled, the membership must be updated to enable it.\nThe command to update your cluster's membership varies slightly depending on whether you've configured your cluster with the default private OIDC issuer or the experimental public one. Choose the tab that applies to your cluster:\n\n\u003cbr /\u003e\n\n### Private OIDC issuer (default)\n\n gcloud container hub memberships register \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003eMEMBERSHIP_NAME\u003c/span\u003e\u003c/var\u003e \\\n --context=\u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003eKUBECONFIG_CONTEXT\u003c/span\u003e\u003c/var\u003e \\\n --kubeconfig=\u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003eKUBECONFIG_PATH\u003c/span\u003e\u003c/var\u003e \\\n --enable-workload-identity \\\n --has-private-issuer\n\nReplace:\n\n- \u003cvar translate=\"no\"\u003eMEMBERSHIP_NAME\u003c/var\u003e: the membership name of your cluster\n- \u003cvar translate=\"no\"\u003eKUBECONFIG_CONTEXT\u003c/var\u003e: context in the kubeconfig for accessing the AKS cluster\n- \u003cvar translate=\"no\"\u003eKUBECONFIG_PATH\u003c/var\u003e: path to your kubeconfig file\n\n### Public OIDC issuer\n\n- Retrieve your cluster's OIDC issuer URL with the following command:\n\n az aks show -n \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e \\\n -g \u003cvar translate=\"no\"\u003eRESOURCE_GROUP\u003c/var\u003e \\\n --query \"oidcIssuerProfile.issuerUrl\" -otsv\n\nThe output of this command will be the URL of your OIDC issuer. Save this value\nfor use later.\n\n- Update the membership:\n\n gcloud container fleet memberships register \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003eMEMBERSHIP_NAME\u003c/span\u003e\u003c/var\u003e \\\n --context=\u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003eKUBECONFIG_CONTEXT\u003c/span\u003e\u003c/var\u003e \\\n --kubeconfig=\u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003eKUBECONFIG_PATH\u003c/span\u003e\u003c/var\u003e \\\n --enable-workload-identity \\\n --public-issuer-url=\u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003eOIDC_URL\u003c/span\u003e\u003c/var\u003e\n\nReplace:\n\n- \u003cvar translate=\"no\"\u003eMEMBERSHIP_NAME\u003c/var\u003e: the membership name of your cluster\n- \u003cvar translate=\"no\"\u003eKUBECONFIG_CONTEXT\u003c/var\u003e: context in the kubeconfig for accessing the AKS cluster\n- \u003cvar translate=\"no\"\u003eKUBECONFIG_PATH\u003c/var\u003e: path to your kubeconfig\n- \u003cvar translate=\"no\"\u003eOIDC_URL\u003c/var\u003e: the OIDC URL retrieved earlier\n\nMigrate your cluster\n--------------------\n\nTo migrate your cluster from GKE attached clusters (previous generation) to GKE attached clusters:\n\n1. Extract your cluster's kubeconfig context and store it in the\n KUBECONFIG_CONTEXT environment variable:\n\n KUBECONFIG_CONTEXT=$(kubectl config current-context)\n\n2. Run the following command to migrate your cluster to the current generation\n of GKE attached clusters. This command extracts the relevant details of your cluster's\n configuration and registers your cluster with Google Fleet Management, and\n installs or upgrades any necessary software, such as the lifecycle agent, on\n your cluster.\n\n gcloud container attached clusters import \\\n --location=\u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003eGOOGLE_CLOUD_REGION\u003c/span\u003e\u003c/var\u003e \\\n --fleet-membership=\u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003eFLEET_MEMBERSHIP\u003c/span\u003e\u003c/var\u003e \\\n --platform-version=\u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003ePLATFORM_VERSION\u003c/span\u003e\u003c/var\u003e \\\n --distribution=\u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003eCLUSTER_DISTRIBUTION\u003c/span\u003e\u003c/var\u003e \\\n --context=\u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003eKUBECONFIG_CONTEXT\u003c/span\u003e\u003c/var\u003e \\\n [--kubeconfig=\u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003eKUBECONFIG_PATH\u003c/span\u003e\u003c/var\u003e]\n\n Replace:\n - \u003cvar translate=\"no\"\u003eGOOGLE_CLOUD_REGION\u003c/var\u003e: the Google Cloud location from which your cluster is administered\n - \u003cvar translate=\"no\"\u003eFLEET_MEMBERSHIP\u003c/var\u003e: the fully qualified membership designator of your registered cluster (see below)\n - \u003cvar translate=\"no\"\u003ePLATFORM_VERSION\u003c/var\u003e: the version of GKE attached clusters that you want to migrate to (example: v1.22.0-gke.1)\n - \u003cvar translate=\"no\"\u003eCLUSTER_DISTRIBUTION\u003c/var\u003e: the cluster type - `eks` for AWS's Elastic Kubernetes Service, `aks` for Azure Kubernetes Service, or `generic` for any other distribution\n - \u003cvar translate=\"no\"\u003eKUBECONFIG_CONTEXT\u003c/var\u003e: the name of the context in your `kubeconfig` to connect to your cluster with\n - \u003cvar translate=\"no\"\u003eKUBECONFIG_PATH\u003c/var\u003e: the location of your `kubeconfig` file. If not specified, the default is `~/.kube/config`\n\n The membership designator is a string that uniquely identifies your attached\n cluster and has the form\n `projects/`\u003cvar translate=\"no\"\u003ePROJECT_NUMBER\u003c/var\u003e`/locations/global/memberships/`\u003cvar translate=\"no\"\u003eMEMBERSHIP_ID\u003c/var\u003e,\n where\n - \u003cvar translate=\"no\"\u003ePROJECT_NUMBER\u003c/var\u003e is your Fleet host project number. You must\n specify the same project number as one your cluster currently belongs to\n\n - \u003cvar translate=\"no\"\u003eMEMBERSHIP_ID\u003c/var\u003e: this must be the fleet membership ID of\n your existing cluster. GKE attached clusters will use this value as your\n cluster name.\n\n### Azure Workload Identity Support\n\nAzure is offering WI support in public preview. Enabling this feature\nchanges your cluster's OIDC issuer URL. If you've already registered your\ncluster with a previous OIDC URL, you cannot update to the new URL as that\nfield is not currently updatable.\n\nTo resolve this:\n\n1. Recreate your cluster with workload identity enabled.\n2. [Attach your AKS cluster](/kubernetes-engine/multi-cloud/docs/attached/aks/how-to/attach-cluster).\n3. Migrate your workloads to the new cluster.\n4. Delete the old cluster."]]