Como posso proteger meu painel do Kubernetes com um usuário/senha contra acesso externo?
Crie um cluster usando Minikubes no modo vm-driver=none.
Responder1
No Kubernetes, as solicitações vêm como Autenticação (credenciais que determinam quem está se comunicando com o servidor API) e Autorização (para que o servidor API possa determinar se este usuário pode executar a ação solicitada). No entanto, o Kubernetes não possui usuários no significado tradicional da palavra (os usuários do Kubernetes são apenas strings associadas a uma solicitação por meio de credenciais). A estratégia de credenciais é uma escolha que você faz enquanto instala o cluster (você pode escolher entre x509, arquivos de senha, tokens de portador, etc.).
Como você adicionou que deseja criar usuários enquanto usa --vm-driver=none, presumo que o painel e o cluster em si estejam disponíveis na rede para todos. O Minikube é destinado ao desenvolvimento e testes locais, parece que ele cria a função em seu nome. Você pode tentar instalar um cluster Kubernetes regular usandokubeadmem vez de usar a versão simplificada implantada com Minikube. Depois que o minikube start
minikube cria a função de cluster "painel do Kubernetes" e um token associado. Portanto, outra solução possível seria excluir o Painel Kubernetes e instalá-lo do zero seguindo as instruçõesaquicom a criação do usuário conforme descritoaquivocê também pode tentar criar novas funções para os usuários, mas não tive tempo suficiente para testar esta solução. Além disso, eu recomendo que você use outras ferramentas para tarefas mais complexas com o Kubernetes - com o kubeadm você mesmo pode instalar o painel e configurá-lo para atender às suas necessidades.
Avançarleiturasobre controle de acesso no painel do Kubernetes. Criando conta de serviço para o painel e obtendo suas credenciaispasso 7:
- Este comando criará uma conta de serviço para o painel no namespace padrão
$ kubectl criar painel de conta de serviço -n padrão
- Este comando adicionará as regras de vinculação de cluster à sua conta do painel
$ kubectl criar clusterrolebinding dashboard-admin -n padrão \
--clusterrole=cluster-admin \ --serviceaccount=default:dashboard
- Este comando fornecerá o token necessário para o login do painel
$ kubectl obter segredo $(kubectl obter painel da conta de serviço -o jsonpath="{.secrets[0].name}") -o jsonpath="{.data.token}" | base64 --decodificar
Você deveria receber um token. 4. Copie este token e cole-o na página de login do painel, selecionando a opção token