Gostaria de vincular meu serviço em todos os nós às portas 80 e 443, para que eu seja redirecionado por meio de um nome DNS (kubernetes) para qualquer nó que me redirecione diretamente para o serviço via HTTP/S e depois para a implantação (nginx ). Porém, não sei exatamente como isso funciona, pois o alcance dos NodePorts só vai de 30000 a 32xxx.
Aqui está minha configuração
DNS-Name IPv4
k8s-master 172.25.35.47
k8s-node-01 172.25.36.47
k8s-node-02 172.25.36.8
kubernetes 172.25.36.47
kubernetes 172.25.36.8
Meu arquivo yaml
apiVersion: v1
kind: Service
metadata:
name: proxy
spec:
ports:
- name: http
nodePort: 80
port: 80
protocol: TCP
targetPort: 80
- name: https
nodePort: 443
port: 443
protocol: TCP
targetPort: 443
selector:
name: proxy
type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: proxy
labels:
name: proxy
spec:
selector:
matchLabels:
name: proxy
replicas: 1
template:
metadata:
labels:
name: proxy
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- name: http
containerPort: 80
protocol: TCP
- name: https
containerPort: 443
protocol: TCP
Que tipo de serviço me fornece uma função para expor essas portas ou como posso realizar minha configuração mental?
Volker
Você tem duas opções:
Encaminhamento de porta simples
Execute o seguinte em todos os servidores
substitua
<nodeport>
pela porta que você escolher para nodeport. Isso exige que você execute um comando em todas as máquinas e é um pouco hacks. Uma solução melhor seria:Ips externos
link para documentos
Isso permite vincular qualquer porta em um nó específico, que será roteado pelo cluster. Isso fornece um único ponto de falha, obviamente, que pode ser corrigido com:
manter-vivo
Keepalived é um software muito simples. Ele cria um endereço IP virtual, que é movido para apontar para um nó diferente quando o mestre falha. Ele cria com eficiência um endereço IP de alias para o servidor master keepalived. Um bom começo seria keepalived-vip , que configura automaticamente o keepalived para os serviços que você fornece.
conclusão
Eu pessoalmente uso o keepalived-vip para isso, pois ele se encaixa muito melhor no meu modelo de rede, mas se seus clientes puderem acessar qualquer um de seus servidores, o encaminhamento de porta simples é a única maneira de fazer isso.