#kubernetes #google-cloud-platform #google-cloud-functions #serverless
#kubernetes #google-облачная платформа #google-cloud-функции #Бессерверный
Вопрос:
Я создал кластеры Kubernetes с образцом приложения Spring Boot, и оно хорошо работает с общедоступного ip. Теперь я хочу получить доступ к конечной точке весенней загрузки в кластерах Kubernetes. Я уже следовал руководству от Google по настройке бессерверного доступа к VPC. (https://cloud.google.com/vpc/docs/configure-serverless-vpc-access?hl=bg ). Я создал бессерверный доступ к VPC и использовал его в одной из облачных функций.
Теперь моя проблема в том, как я могу подключить внутренний IP-адрес кластеров Kubernetes из моей облачной функции?. Я написал код на Go.
package p
import (
"fmt"
"io/ioutil"
"net/http"
)
func HelloWorld(w http.ResponseWriter, r *http.Request) {
fmt.Println("Starting the application...")
response, err := http.Get("http://10.59.247.177:47002/")
if err != nil {
fmt.Fprint(w, "The HTTP request failed with error %sn", err)
} else {
data, _ := ioutil.ReadAll(response.Body)
fmt.Fprint(w, string(data))
}
}
Но я получаю сообщение об ошибке: HTTP-запрос не выполнен с ошибкой %s
Получить http://10.59.247.177:47002 /: набрать tcp 10.59.247.177:47002: тайм-аут ввода-вывода
Ответ №1:
По умолчанию службы Kubernetes являются внутренними для кластера Kubernetes. Вы должны предоставить доступ к службам, чтобы приложения из-за пределов Kubernetes могли подключаться к ним.
Существует 3 основных способа предоставления сервиса в Kubernetes:
- Общедоступный балансировщик нагрузки. Сервис доступен через Интернет.
- Внутренний балансировщик нагрузки. Служба предоставляется внутри VPC и региона.
- Порт узла. Сервис предоставляется на IP-адресах узлов Kube на некотором порту с большим номером. Это делает службу видимой внутри и между регионами внутри VPC.
Подробнее читайте здесь https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types и здесь https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer
Комментарии:
1. Спасибо за ваш ответ. На самом деле, я уже настроил общедоступный балансировщик нагрузки, который работает нормально. Я попробовал этот общедоступный IP-адрес в облачной функции. Это тоже работает. Я попробую внутренний балансировщик нагрузки.
2. Я прочитал в вашем профиле, что вы работаете с openstack. как я могу использовать openstack в качестве балансировщика нагрузки для kubernetes? вы используете magnum или ZUN? мой openstack работает слишком медленно, что мне делать? извините, что спрашиваю об этом здесь, но это важно для меня. Я рад получить ваше электронное письмо. не могли бы вы добавить его в свой профиль?
3. Я следовал рекомендациям по созданию внутреннего баланса нагрузки. ( cloud.google.com/files /… ). Но мой балансировщик нагрузки всегда не работает. Как я могу создать правильный и подключиться к облачной функции? Других руководств или руководств нет
4. Вы должны выполнить следующие действия: cloud.google.com/kubernetes-engine/docs/how-to /…