Estou tentando fazer o HostPorts funcionar, mas eles simplesmente não parecem funcionar. Eu os configurei em minha configuração de implantação no contêiner e eles não são mapeados. Eu vasculhei a rede por toda a parte, mas não parece haver uma maneira concreta de configurar as coisas. Eu olhei para a solicitação de mesclagem mencionada acima (kubernetes / website # 5940) e ela menciona a documentação do
Em termos de configuração, o mais próximo que posso encontrar é o comentário desse sujeito e minha configuração parece corresponder à dele, mas mesmo agora não está claro como fazer a configuração entrar em vigor.
Alguém conhece alguma documentação que descreva as partes móveis da configuração de uma porta de host e como configurá-la, e algum arquivo / comando de configuração de exemplo seria útil?
hostport
configurações mapeiam uma porta de host.
Não abre uma porta de host
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "1"
generation: 1
labels:
run: website
name: websiteHostPortTest
namespace: default
spec:
replicas: 1
selector:
matchLabels:
run: website
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
run: website
spec:
containers:
- image: <path to container>
imagePullPolicy: Always
name: website2
ports:
- containerPort: 80
protocol: TCP
hostPort: 80
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
Estou tentando hospedar o Ingress na porta 80, mas meu contêiner de teste não consegue abrir uma porta do host, portanto, se não funcionar, o Ingress não funcionará.
version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.1", GitCommit:"3a1c9449a956b6026f075fa3134ff92f7d55f812", GitTreeState:"clean", BuildDate:"2018-01-04T11:52:23Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}
Eu encontrei um problema semelhante - originalmente implantei a flanela 0.9 que não era compatível com o plugin portmap e, em seguida, removi-a e adicionei a flanela 0.10, que inclui o plugin portmap.
O problema era que 10-flannel.conf de flannel 0.9 permanecia em /etc/cni/net.d
Depois de removê-lo e reiniciar os nós, o HostPort começou a funcionar (no entanto, pode ter sido o suficiente apenas reiniciar o kubelet).
Talvez rm -f deva ser incluído na flanela 0.10 para atualização de outras pessoas
@smorrisfv Você encontrou uma hostPort
não criando um mapeamento de porta para o host quando o uso em um Daemonset.
Estou usando https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml para instalar o Flannel, que usa quay.io/coreos/ flannel: v0.10.0-amd64. Eu não deveria estar tendo o problema de ter arquivos de configuração 0,9 antigos sobrando porque esta é uma instalação nova.
@NickMRamirez Eu nunca encontrei uma solução alternativa. Trabalhei nisso por mais ou menos uma semana, depois passei para outras tarefas urgentes e não voltei. É uma das últimas coisas que bloqueiam a implantação do meu k8s. Não seria apenas criar a porta no host, eu deveria olhar para ver qual versão estou executando, mas acho que era 0.1.
teve esse problema ao tentar usar o nginx-ingress local.
Notícia:
Parece que estava faltando:
curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/baremetal/service-nodeport.yaml \
| kubectl apply -f -
Kubespray não tem a opção de implantar service-nodeport para nginx-ingress, então isso deve ser feito manualmente. Agora testei usando chita, mas parece que posso tentar novamente com flanela.
Encontro o mesmo problema k8s 1.11.5 + flannel daemonset pod hostport não mapeado
dois DNAT para o mesmo pod
-UMA DOCKER! -i docker0 -p tcp -m tcp --dport 10101 -j DNAT --para o destino 10.251.90.31:10101
-A KUBE-SEP-SVXEETBGLRGRAETZ -p tcp -m comentário --comentário "cfglyb / cfglyb-c yzhglptqd: port1 " -m tcp -j DNAT --para o destino 10.251.90.31:8080
Pode ser um bug do docker, remover o contêiner do docker e não reciclar a regra DNAT
-UMA DOCKER! -i docker0 -p tcp -m tcp --dport 10101 -j DNAT --para o destino 10.251.90.31:10101
-UMA DOCKER! -i docker0 -p tcp -m tcp --dport 10101 -j DNAT --para o destino 10.251.90.7:10101
Comentários muito úteis
Eu encontrei um problema semelhante - originalmente implantei a flanela 0.9 que não era compatível com o plugin portmap e, em seguida, removi-a e adicionei a flanela 0.10, que inclui o plugin portmap.
O problema era que 10-flannel.conf de flannel 0.9 permanecia em /etc/cni/net.d
Depois de removê-lo e reiniciar os nós, o HostPort começou a funcionar (no entanto, pode ter sido o suficiente apenas reiniciar o kubelet).
Talvez rm -f deva ser incluído na flanela 0.10 para atualização de outras pessoas