<p>kubeadm рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдЯреЛрдХрди рд▓реЙрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ</p>

рдХреЛ рдирд┐рд░реНрдорд┐рдд 11 рд╕рд┐рддре░ 2020  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: kubernetes/kubeadm

рдЗрд╕реЗ рдлрд╛рдЗрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдиреЗ kubeadm рдореБрджреНрджреЛрдВ рдореЗрдВ рдХреМрди рд╕реЗ рдХреАрд╡рд░реНрдб рдЦреЛрдЬреЗ?

token , error

рдХреНрдпрд╛ рдпрд╣ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдпрд╛ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рд╣реИ?

_рд╕реБрд░рдХреНрд╖рд╛_ рд░рд┐рдкреЛрд░реНрдЯ

рд╕рд╛рд░рд╛рдВрд╢:

kubeadm рдХрд╛ delete рдХрдорд╛рдВрдб рдПрдХ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдЯреЛрдХрди рдЖрдИрдбреА, рдпрд╛ рдПрдХ рдкреВрд░реНрдг рдЯреЛрдХрди рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИред рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЗрдирдкреБрдЯ рд╕рд┐рд░реНрдл рдПрдХ рдЖрдИрдбреА рдпрд╛ рдкреВрд░реНрдг рдЯреЛрдХрди рд╣реИ, kubeadm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдирдкреБрдЯ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИ klog ред рдпрджрд┐ рд╡рд┐рд▓реЛрдкрди рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рдЯреЛрдХрди рд╡реИрдз рд░рд╣реЗрдЧрд╛ред рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рд▓реЙрдЧ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рд╡рд╣ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдЯреЛрдХрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдирд╛ рдпрд╛ рдореМрдЬреВрджрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдиреЛрдбреНрд╕ рдХреЛ рдЬреЛрдбрд╝рдирд╛ред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдВрд╕реНрдХрд░рдг:

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ 1.19 рдореЗрдВ рдХрдордЬреЛрд░ рдХреЛрдб рдореМрдЬреВрдж рд╣реИред рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрдВрдХреНрддрд┐ рдЬрд┐рд╕рдореЗрдВ klog рдкрд░ рдХреЙрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЕрдВрддрд┐рдо рдмрд╛рд░ 2019-03-24 рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╡рд┐рд╡рд░рдг:

рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдХреЛрдб github.com/kubernetes рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдореЗрдВ kubernetes/cmd/kubeadm/app/cmd/token.go , рд▓рд╛рдЗрди 423 рдкрд░ред рдпрд╣рд╛рдВ рд╕рдВрдкреВрд░реНрдг рдХрд╛рд░реНрдп рд╣реИ:

// RunDeleteTokens removes a bootstrap tokens from the server.
func RunDeleteTokens(out io.Writer, client clientset.Interface, tokenIDsOrTokens []string) error {
    for _, tokenIDOrToken := range tokenIDsOrTokens {
        // Assume this is a token id and try to parse it
        tokenID := tokenIDOrToken
        klog.V(1).Infof("[token] parsing token %q", tokenIDOrToken) // POTENTIAL LEAK HERE
        if !bootstraputil.IsValidBootstrapTokenID(tokenIDOrToken) {
            // Okay, the full token with both id and secret was probably passed. Parse it and extract the ID only
            bts, err := kubeadmapiv1beta2.NewBootstrapTokenString(tokenIDOrToken)
            if err != nil {
                return errors.Errorf("given token %q didn't match pattern %q or %q",
                    tokenIDOrToken, bootstrapapi.BootstrapTokenIDPattern, bootstrapapi.BootstrapTokenIDPattern)
            }
            tokenID = bts.ID
        }

        tokenSecretName := bootstraputil.BootstrapTokenSecretName(tokenID)
        klog.V(1).Infof("[token] deleting token %q", tokenID)
        if err := client.CoreV1().Secrets(metav1.NamespaceSystem).Delete(context.TODO(), tokenSecretName, metav1.DeleteOptions{}); err != nil {
            return errors.Wrapf(err, "failed to delete bootstrap token %q", tokenID)
        }
        fmt.Fprintf(out, "bootstrap token %q deleted\n", tokenID)
    }
    return nil
}

рдФрд░ рдпрд╣рд╛рдБ kubeadm рдХрдорд╛рдВрдб рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИ рдЬреЛ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИ (рдЙрд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ):

    deleteCmd := &cobra.Command{
        Use:                   "delete [token-value] ...",
        DisableFlagsInUseLine: true,
        Short:                 "Delete bootstrap tokens on the server",
        Long: dedent.Dedent(`
            This command will delete a list of bootstrap tokens for you.

            The [token-value] is the full Token of the form "[a-z0-9]{6}.[a-z0-9]{16}" or the
            Token ID of the form "[a-z0-9]{6}" to delete.
        `),
        RunE: func(tokenCmd *cobra.Command, args []string) error {
            if len(args) < 1 {
                return errors.Errorf("missing subcommand; 'token delete' is missing token of form %q", bootstrapapi.BootstrapTokenIDPattern)
            }
            kubeConfigFile = cmdutil.GetKubeConfigPath(kubeConfigFile)
            client, err := getClientset(kubeConfigFile, dryRun)
            if err != nil {
                return err
            }

            return RunDeleteTokens(out, client, args)
        },
    }

рдкреНрд░рднрд╛рд╡:

рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдЬреЛ рд▓реЙрдЧ рд╕реЗ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ kubeadm рд╕рд╛рде рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдФрд░ рдПрдХ рдирдпрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдиреЗ рдпрд╛ рдореМрдЬреВрджрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдиреЛрдбреНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдПрдХ рд╣рдорд▓рд╛рд╡рд░ kubeadm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреНрдп рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпрд╛рдВ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдЯреЛрдХрди рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рдпрд╛ рд╣рдЯрд╛рдирд╛ред

рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА:

рдореИрдВрдиреЗ HackerOne рдХреЛ рдЗрд╕ рднреЗрджреНрдпрддрд╛ рдХреА рд╕реВрдЪрдирд╛ рджреА рд╣реИ рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЙрдЪреНрдЪ рд╣рдорд▓реЗ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рдХрдо рдЧрдВрднреАрд░рддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЙрдиреНрд╣реЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдПрдХ рдлрд┐рдХреНрд╕ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд░ рдПрдХ рдкреАрдЖрд░ рдЦреЛрд▓рд╛ рд╣реИ: https://github.com/kubernetes/kubernetes/pull/94727

aresecurity kincleanup prioritbacklog

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kubeadm рдХрд╛ рдбрд┐рд▓реАрдЯ рдХрдорд╛рдВрдб рдПрдХ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдЯреЛрдХрди рдЖрдИрдбреА рдпрд╛ рдПрдХ рдкреВрд░реНрдг рдЯреЛрдХрди рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИред рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЗрдирдкреБрдЯ рд╕рд┐рд░реНрдл рдПрдХ рдЖрдИрдбреА рд╣реИ рдпрд╛ рдПрдХ рдкреВрд░реНрдг рдЯреЛрдХрди рд╣реИ, kubeadm klog рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдирдкреБрдЯ рдХреЛ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╡рд┐рд▓реЛрдкрди рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рдЯреЛрдХрди рд╡реИрдз рд░рд╣реЗрдЧрд╛ред рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рд▓реЙрдЧ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рд╡рд╣ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдЯреЛрдХрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдирд╛ рдпрд╛ рдореМрдЬреВрджрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдиреЛрдбреНрд╕ рдХреЛ рдЬреЛрдбрд╝рдирд╛ред

рдирдорд╕реНрддреЗ, рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓реЙрдЧ рдХреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХреЛ рд╕рд╣реА рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реЙрдЧ рдпрд╛ рддреЛ рд░реВрдЯ рдПрдХреНрд╕реЗрд╕ рдХреЗ рддрд╣рдд рд╣реЛрдВрдЧреЗ рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдореВрд╣ рдХреЛ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдЯреЛрдХрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдкрд╣реБрдВрдЪ рд╣реИред

рднреА:

  • --v=>1 рдХреЛ kubeadm token delete рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЯреЛрдХрди рд╡реИрдз рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реИ
  • рдЯреЛрдХрди 24 рдШрдВрдЯреЗ рдХреЗ рдмрд╛рдж рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреАрдЖрд░ рдореЗрдВ рд╕реБрдзрд╛рд░ рдЬреНрдпрд╛рджрд╛рддрд░ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╣рдорд▓реЗ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг рд╣рдореЗрдВ рдкреБрд░рд╛рдиреЗ рд░рд┐рд▓реАрдЬ (<1.20) рдкрд░ рдмреИрдХрдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдмреИрдХрдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @neolit123 рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ (рдЬрдм рддрдХ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рди рд╣реЛрдВ)
рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП WRT, рдореИрдВ рд▓реЙрдЧ рд╕реЗ TokenID рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП +1 рд╣реВрдВ

https://github.com/kubernetes/kubernetes/pull/94727 рд╡рд┐рд▓рдп рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрджред
рдзрдиреНрдпрд╡рд╛рдж

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

tmjd picture tmjd  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mattmoyer picture mattmoyer  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

helphi picture helphi  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

RakeshNagarajan picture RakeshNagarajan  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kvaps picture kvaps  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ