Я играл с kubernetes и столкнулся с проблемой.Суть моей проблемы заключается в том, что, хотя я могу получить доступ к службам на главном узле, свернув локальный хост, попытка доступа к нему через общедоступный IP-адрес и порт, которые делают то же самое на другом компьютере (или в веб-браузере), зависает навсегда.
Я настроил кластер, используя скрипт 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
Службы запускаются нормально, но я не могу получить доступ к этому узлу извне.Я попробовал следовать этому руководству по отладке и обнаружил несоответствие, которое при вводе:
$ iptables-save | grep
я ничего не получаю.Но документ не дает рекомендации относительно исправления.Кто-нибудь видел эту проблему раньше?Я обеспокоен тем, что мой конфигурационный файл имеет проблемы с ним, но я не могу понять, что!