Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法卷曲到外部IP

无法卷曲到外部IP
EN

Stack Overflow用户
提问于 2020-04-16 03:38:39
回答 2查看 472关注 0票数 0

我无法卷曲到服务的外部IP。我的Kubernetes集群部署在GKE上。

代码语言:javascript
运行
AI代码解释
复制
$ kubectl run kubia-container --image=australia/kubia_py --port=8080 --generator=run/v1
kubectl run --generator=run/v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
replicationcontroller/kubia-container created

$ kubectl get pods
NAME          READY  STATUS  RESTARTS  AGE
kubia-container-6b2cs  1/1   Running  0     25s

$ kubectl expose rc kubia-container --type=LoadBalancer --name kubia-http
service/kubia-http exposed

$ kubectl get pods,svc,rc
NAME            READY  STATUS  RESTARTS  AGE
pod/kubia-container-6b2cs  1/1   Running  0     93m

NAME         TYPE      CLUSTER-IP  EXTERNAL-IP  PORT(S)     AGE
service/kubernetes  ClusterIP   10.0.0.1   <none>     443/TCP     6h28m
service/kubia-http  LoadBalancer  10.0.4.238  35.188.42.26  8080:30030/TCP  91m

$ curl 35.188.42.26:8080
curl: (7) Failed to connect to 35.188.42.26 port 8080: Connection refused
EN

回答 2

Stack Overflow用户

发布于 2020-04-16 18:02:41

我试过很多方法来达到你想要的效果。我假设这个图像australia/kubia_py它是你的自定义图像。我认为你不能卷曲这个服务,因为在文件nodeapp.py中的这个图像中,你已经放入了这样的条目:

代码语言:javascript
运行
AI代码解释
复制
server = HTTPServer(('localhost', 8080), GetHandler) 
print ("Starting server, use <Ctrl-C> to stop") 
server.serve_forever()

此外,如果您检查容器内部的netstat,您将看到它在127.0.0.1:8080上进行侦听

代码语言:javascript
运行
AI代码解释
复制
# netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      1/python3

我认为应该指定0.0.0.0来监听所有接口,而不是'localhost‘。

我发现只有一种方法可以实现这个replicacontroller应用程序的输出(我建议将来尝试使用deployments )就是使用web-preview。为此,您需要port-forward您的pod。

代码语言:javascript
运行
AI代码解释
复制
$ kubectl get pods
NAME                    READY   STATUS    RESTARTS   AGE
kubia-container-95rrq   1/1     Running   0          44m
user@cloudshell:~ (project-name)$ kubectl port-forward kubia-container-95rrq 8888:8080
Forwarding from 127.0.0.1:8888 -> 8080
Handling connection for 8888
Handling connection for 8888

端口8888只是我选择的默认端口之一。您的菜单中有几个。

以及使用WebPreview (使用cloud shell中的按钮)。能够实现如下输出:

代码语言:javascript
运行
AI代码解释
复制
CLIENT VALUES:
client_address=('127.0.0.1', 46696) (127.0.0.1)
command=GET
path=/?authuser=0
real path=/
query=authuser=0
request_version=HTTP/1.1

SERVER VALUES:
server_version=BaseHTTP/0.6
sys_version=Python/3.6.9
protocol_version=HTTP/1.0
host_name=kubia-container-95rrq
host_ip=10.44.1.26

另外,如果你暴露的是replicacontroller或者deployment,记住如果你只是设置--port=8080,它也会自动将--port-target设置为8080。如果您正在使用kubectl expose来使用标志--port=XX--target-port=xxxx,那么最好使用它。

如果你想查看kubia replicacontrollerservice,你可以使用this example,如下所示:

代码语言:javascript
运行
AI代码解释
复制
$ kubectl apply -f kubia-rc-and-service-v1.yaml
replicationcontroller/kubia-v1 created
service/kubia created
user@cloudshell:~ (your-project)$ kubectl get rc,svc
NAME                                    DESIRED   CURRENT   READY   AGE
replicationcontroller/kubia-v1          3         3         3       40s

NAME                      TYPE           CLUSTER-IP    EXTERNAL-IP      PORT(S)          AGE
service/kubernetes        ClusterIP      10.0.48.1     <none>           443/TCP          8h
service/kubia             LoadBalancer   10.0.51.154   35.240.23.237    80:30785/TCP     40s
$ curl 35.240.23.237:80
This is v1 running in pod kubia-v1-zpj6s

您可以在Official GKE docs上找到的另一个公开和访问服务的好例子。

票数 0
EN

Stack Overflow用户

发布于 2020-04-16 21:07:11

尝试使用localhost:30030,这是向您的主机公开的nodeport。

如果这不起作用,这意味着您的容器没有在8080中侦听,您可以测试进入pod和curl localhost:8080

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61242293

复制
相关文章
axios django CSRF 403错误
使用axios直接post django的接口的时候会提示CSRF 403错误 可以在post的data中转入csrftoken 也可以给单个方法关闭 from django.views.decorators.csrf import csrf_exempt,csrf_protect @csrf_exempt def test(request): pass
小贝壳
2020/03/05
1.4K0
Nginx禁止访问该用401还是403
之前在某些文章中看到建议在nginx配置中用return401而不用403,也没说具体原因,最近这不闲了,突然想起来,google了半天也没有任何相关的信息(可能不太会用google),没办法,只能自己实践看看了
李俊鹏
2020/06/15
3.6K0
Nginx禁止访问该用401还是403
django 主动抛出 403 异常
* 网站名称:obaby@mars * 网址:https://h4ck.org.cn/ * 本文标题: 《django 主动抛出 403 异常》 * 本文链接:https://h4ck.org.cn/2018/12/django-%e4%b8%bb%e5%8a%a8%e6%8a%9b%e5%87%ba-403-%e5%bc%82%e5%b8%b8/ * 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。
obaby
2023/02/24
7970
Django 自定义404 403 500
1、创建templates文件夹 在文件夹下创建404.html/403.html/500.html文件 2、settings.py DEBUG = False # 关闭Debug ... TEMPLATES = [ { ... 'DIRS': ['templates/'], # 配置tamplates文件路径 ... }, ] ... ALLOWED_HOSTS = [ '192.168.1.12', # 配置allowrd_hosts ] 3、views.py from django.shortcuts import render
用户5760343
2022/05/14
4610
Django提交表单时遇到403错误:CSRF verification failed
django 提交表单 提示403:CSRF verification failed 后台日志: UserWarning: A {% csrf_token %} was used in a template, but the context did not provide the value. This is usually caused by not using RequestContext. "A {% csrf_token %} was used in a template, but the
程序员同行者
2018/07/02
1.9K0
Django自定义全局403、404、500错误页面
使用{{ exception }}即可捕获异常信息,转换为html代码{{ exception|safe }},可以根据这些代码中的id等,得到跳转的链接,参考
菲宇
2019/07/31
1.6K0
python测试开发django-66.图片403forbidden
用 django 开发 web 页面,在 HTML 页面上添加图片时,发现本地图片可以正常显示,但是添加一个互联网的图片,却不能正常显示。
上海-悠悠
2019/11/14
6380
【译】HTTP错误码403禁止:意味着什么,怎么修复它
在上网的时候,收到任何的错误码都是让人沮丧的体验。尽管我们已经习惯于404页面找不到,我们在页面迷失的时候,看到可爱的占位符来娱乐我们是很常见的事情了。但是有种更令人困惑的403错误:禁止响应。
Jimmy_is_jimmy
2020/01/03
30.9K0
Django 获取请求参数
  我们在使用python做接口测试的时候,通常使用的是requests库。而大家都知道还有一个request东西,很多人对requests与request两个东西傻傻分不清。下面我简单来介绍一下。
全栈测试开发日记
2023/02/02
2.8K0
Django 获取请求参数
Springboot 403
如果同时进行了filter和CorsConfiguration的配置,OPTIONS请求会返回403,并且控制台提示 Itdoesnothave HTTP ok status.非常恶心。 网上没有找到相应的解释。
喜欢天文的pony站长
2020/06/29
2K0
Springboot 403
Gitlab 403 forbidden
搭建的Gitlab。但今天打开页面的时候显示的是空白页面,上面还有一次文本Forbidden。
匿名用户的日记
2021/12/14
1.4K0
Gitlab 403 forbidden
React saga_react获取子组件ref
React的作用View层次的前端框架,自然少不了很多中间件(Redux Middleware)做数据处理, 而redux-saga就是其中之一,目前这个中间件在网上的资料还是比较少,估计应用的不是很广泛,但是如果使用得当,将会事半功倍的效果,下面仔细介绍一个这个中间件的具体使用流程和应用场景。
全栈程序员站长
2022/09/27
4.6K0
React saga_react获取子组件ref
Django获取HTTP头信息
头信息在HttpRequest对象的META属性中。具体可以查看HttpRequest常用属性。 例如:
zy010101
2021/11/02
1K0
django 获取 request 的 url
    print(request.get_full_path())                             ^ SyntaxError: invalid character in identifier
卓越笔记
2023/02/18
2.1K0
前端React后端Django 导出Excel
Dajngo查询数据,查询出来之后生成Excel保存本地 class ExportExcel(APIView): def post(self, request, *args, **kwargs): export_time = request.data.get('startEndTime') user_id = request.data.get('user_id') if len(user_id) == 1 and 0 in user_id:
Wyc
2021/07/08
6730
Django REST + React + Redux 上传文件
环境 后端: Django==2.0.5 djangorestframework==3.8.2 前端: "react": "^16.3.2" "react-redux": "^5.0.7" "redux": "^4.0.0" 后端 Models: class Supervise(models.Model): ... photo = models.ImageField(upload_to='media/supervise/',null=True,blank=True) # 照片附件 .
fanzhh
2019/08/20
1.2K0
SpringSecurity 403 forbidden
springboot项目,涉及跨域,跨域问题解决后,整合权限SpringSecurity。 遇到问题:get请求可以正常通过;post请求的OPTIONS请求可以通过,但是post请求403 forbidden 报错。
IT云清
2021/12/10
1.7K0
nginx 403 forbidden
nginx django .conf 配置 nginx python Django 集成总结之-nginx配置
onety码生
2018/11/21
3.2K0
Django的POST请求报403,及四种解决方法
Django默认开启防止csrf(跨站点请求伪造)攻击,在post请求时,没有上传 csrf字段,导致校验失败,报403错误
用户1558882
2018/10/10
15.8K1
Django的POST请求报403,及四种解决方法
点击加载更多

相似问题

比较字符串:文件和列表

11

LINQ -比较列表对象和字符串列表

22

比较元素列表和字符串数组

10

比较列表和列表

211

haskell理解列表,比较字符串和列表,从列表创建字符串列表和值字符串列表。

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档