It's not random, it's documented in the kinit manual page.
You need an environment variable really, otherwise every krb5-or-GSS using
client you run needs to have an explicit option (argument, conf file, and/or in the
UI) to specify the ticket cache.
It's not as transparent as using having SSH keys though, unfortunately.