我一直在玩kubernetes,遇到了一个问题。问题的核心是,虽然我可以通过卷曲localhost来访问主节点上的服务,但尝试通过公用ip和端口访问同一服务的行为在另一台计算机(或Web浏览器)上永久挂起。
我已经使用terraform脚本(以root身份运行)配置了集群:
#!/bin/bash -v
exec 3>&1 4>&2
trap 'exec 2>&4 1>&3' 0 1 2 3
exec 1>startup_log.out 2>&1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
cat << EOF | tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y docker-ce
apt-mark hold docker-ce
apt-get install -y kubelet kubeadm kubectl kubernetes-cni
apt-mark hold kubelet kubeadm kubectl
kubeadm init --token=${k8stoken} --pod-network-cidr=10.244.0.0/16
mkdir -p /home/ubuntu/.kube
cp -i /etc/kubernetes/admin.conf /home/ubuntu/.kube/config
chown -R $(id -u ubuntu):$(id -g ubuntu) /home/ubuntu/.kube/
usermod -aG docker ubuntu
echo "net.bridge.bridge-nf-call-iptables=1" | tee -a /etc/sysctl.conf
sysctl -p
runuser -l ubuntu -c '\
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml
'
之后,我通过SSH连接到主节点(运行正常)并运行:
$ git clone https://github.com/linuxacademy/robot-shop.git
$ kubectl create namespace robot-shop
$ kubectl -n robot-shop create -f ~/robot-shop/K8s/descriptors/
$ ubuntu@ip-10-0-100-167:~$ kubectl -n robot-shop get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
cart ClusterIP 10.105.152.135 <none> 8080/TCP 15s
catalogue ClusterIP 10.97.111.197 <none> 8080/TCP 15s
dispatch ClusterIP None <none> 55555/TCP 15s
mongodb ClusterIP 10.107.178.183 <none> 27017/TCP 15s
mysql ClusterIP 10.110.254.52 <none> 3306/TCP 15s
payment ClusterIP 10.99.195.138 <none> 8080/TCP 15s
rabbitmq ClusterIP 10.99.70.232 <none> 5672/TCP,15672/TCP 15s
ratings ClusterIP 10.98.80.21 <none> 80/TCP 15s
redis ClusterIP 10.101.232.84 <none> 6379/TCP 15s
shipping ClusterIP 10.106.246.97 <none> 8080/TCP 15s
user ClusterIP 10.109.120.146 <none> 8080/TCP 15s
web NodePort 10.97.162.113 <none> 8080:30080/TCP 15s
服务似乎可以正常启动,但是我无法从外部访问此主机上的任何内容。我尝试遵循this debugging guide,并在输入时发现了差异:
$ iptables-save | grep
我什么也没得到。但是该文档未对修复提出建议。有人看过这个问题吗?我担心我的配置文件有问题,但是我不知道是什么!
答案 0 :(得分:0)
在特定安全组中为相关主节点实例启用了适当的服务端口之后,已解决了注释问题中的@Ashworth。