今天就给大家推荐两款超实用的工具, Ngrok和ZeroNews,不用自己买服务器、也不用折腾各种环境,甚至不需要公网 IP,就能直接让外地的朋友访问你电脑上运行的应用! 为什么平时别人访问不到你电脑上的服务?道理其实很简单。我们日常使用的电脑,大多都处在内部网络之中,并没有一个独立的、公开的 IP 地址。 这个中间人知道你的地址,它会帮你搭起一条通道,让外部用户也能顺利访问到你电脑上运行的服务。下面以windows为例,让我们来看看这两种应该怎么实现。 然后,访问 ZeroNews 官网的Agent页面,将 ZeroNews Agent zeronews.exe 下载到指定的目录。 接下来,您可以在 ZeroNews 平台上生成域名、创建应用服务,并根据需要进行应用访问。
那么,主要的问题来了,本地计算机搭建服务器后,在外地怎么访问设置呢,特别是面对没有路由权限和没有公网IP的情况?当你在本地主机上搭建了应用并部署了服务器后,局域网内的电脑可以直接通过内网IP进行访问。 三、外网访问内网通用方:无公网IP用nat123端口映射1、内网端口应用明确如本地phpstudy部署后在局域网内正常访问,对应内网IP端口需要访问的记录好。 在编辑映射页面,先选择【映射类型】包括80、443、非80等按需选择适合的;然后再自定义填写对应内网地址(本地目标内网IP端口)和外网地址(外地公网上访问用的域名端口,可用自己域名或自动提供的自定义二级域名 4,外网域名端口访问在外地访问时使用对应的外网域名端口地址。如在外网的浏览器的地址栏输入nat123映射phpstudy指定端口网站的外网地址就可以访问本地部署的web网址页面了。 域名端口访问不了简单排查:确保本地目标端口应用在局域网内可以正常访问,确保添加映射使用对应正确的内网IP端口,确保使用nat123客户端本机使用对应填写的内网IP端口可以正常访问。
认证Authentication 在认证方面,K8s提供了如下的认证方式: HTTPS证书认证: 基于CA根证书签名的双向数字认证方式,比如k8s运维人员通过kubectl访问API Server 但是K8s并没有相应的资源对象或者API来支持常规的个人用户。拥有K8s集群的CA证书签名的有效证书,个人用户就可以访问K8s集群了。 · RBAC(Role-Based Access Control):基于角色的访问控制,它是目前K8s默认的授权策略。 2 Node授权 Node授权策略用于对kubelet发出的请求进行访问控制,与用户的应用授权无关,属于K8s自身安全的增强功能。 在K8s 1.7中,由于Node授权器实现了相同的目的,因此不再支持system:nodes组与system:node角色的自动绑定,从而有利于对secret 和configmap访问的附加限制。
本篇的内容主要是介绍如何配置网络,使得能够在外部网络访问集群。 Service,读者可以查看官方文档的资料:https://kubernetes.io/zh/docs/concepts/services-networking/service/ Service 是 k8s 在 k8s 中,每个 pod 都有自己的 ip 地址,而且 Service 可以为一组 pod 提供相同的 DNS ,使得多个 pod 之间可以相互通讯,k8s 可以在这些 pod 之间进行负载均衡。 Service 外部服务类型 k8s 中可以将一个 Service 暴露到集群外部,外界可以通过 ip 访问这个 Service。 这时已经可以直接通过外网访问 Service 中的服务了。
在K8S中,同一个命名空间(namespace)下的服务之间调用,之间通过服务名(service name)调用即可。 遇到这种情况,我们就需要跨命名空间访问,K8S 对service 提供了四种不同的类型,针对这个问题我们选用 ExternalName 类型的 service 即可。 k8s service 分为四种类型 分别为: ClusterIp(默认类型,每个Node分配一个集群内部的Ip,内部可以互相访问,外部无法访问集群内部) NodePort(基于ClusterIp,另外在每个 Node上开放一个端口,可以从所有的位置访问这个地址) LoadBalance(基于NodePort,并且有云服务商在外部创建了一个负载均衡层,将流量导入到对应Port。 {NAMESPACE_NAME}.svc.cluster.local这样的格式,访问目标 namespace 下的服务。
如果您已经运行了 Deployment 并创建了一个 Service,但是当您尝试访问它时没有得到响应,希望这份文档能帮助您找出问题所在。 Service工作逻辑 为了完成本次演练的目的,我们先运行几个 Pod $ kubectl run hostnames --image=k8s.gcr.io/serve_hostname \ 这是一个有时会被遗忘的步骤,也是第一件要检查的事情; 那么,如果我试图访问一个不存在的 Service,会发生什么呢? : "default", "selfLink": "/api/v1/namespaces/default/services/hostnames", "uid": "428c8b6c 访问日志取决于您的 Node 操作系统。在某些操作系统是一个文件,如 /var/log/messages kube-proxy.log,而其他操作系统使用 journalctl 访问日志。
Share,来尝试搭建一套做大数据计算时候经常碰到的一种场景: K8S 化的 Spark Job 和 HDFS 交互。 Share 中有作者分享的几个 github 地址,非常有用,分别是本地部署一个 Kerberized HDFS,以及部署 Spark Pi 作业,当然了 Keytab 是在 HDFS 上的,因此需要访问到 可以看到 K8S 集群的一些信息,这里最主要是要记得 master 的地址。然后顺便安装换一下 K8S dashboard。 ? 访问 HDFS 的集群的机器都需要一个叫做 Keytab 的一个东西,也就是说,Spark Job 需要传入 Keytab 才可以读写 HDFS。 Spark on K8S 访问上,其实没太多的 trick,都集中在 Kerberos 认证的问题上,往往是 token 过期,造成无法访问,至于 long-running 还是 short-running
如果您已经运行了 Deployment 并创建了一个 Service,但是当您尝试访问它时没有得到响应,希望这份文档能帮助您找出问题所在。 Service工作逻辑 image.png 为了完成本次演练的目的,我们先运行几个 Pod $ kubectl run hostnames --image=k8s.gcr.io/serve_hostname 这是一个有时会被遗忘的步骤,也是第一件要检查的事情; 那么,如果我试图访问一个不存在的 Service,会发生什么呢? "default", "selfLink": "/api/v1/namespaces/default/services/hostnames", "uid": "428c8b6c 访问日志取决于您的 Node 操作系统。在某些操作系统是一个文件,如 /var/log/messages kube-proxy.log,而其他操作系统使用 journalctl 访问日志。
tomcat8 manager页面限制IP访问 配置tomcat8/webapps/manager/META-INF/context.xml <Context antiResourceLocking="
今天小编找来一篇运用大数据解读城市人口分布的文章,供大家阅读!
我们经常会遇到这样的问题,在家庭网络环境中,内部搭建的监控系统等,有时需要在外地也要访问。 使用动态域名访问示例:在测试公网IP端口正常访问的前提下,同时使用nat123客户端添加个动态域名解析记录,使用自己域名或默认提供的自定义二级域名填写保存即生效,然后再通过对应这个域名来访问即可。 6、路由映射小结这种方法操作相对简单,适合搭建小型 Web 服务或远程桌面访问,但存在显著局限性,那就是依赖公网 IP。对于很多网络没有公网IP的,无法使用这种路由设置方法实现外地远程访问内网。 即使是非技术人员,也能在几分钟内完成内网映射外网访问的部署,大幅降低使用门槛。3、外网访问在局域网外面需要连接访问时,使用对应的外网域名端口地址即可。 在所有服务器端和访问端都需要部署,并搭建成一个虚拟局域网,最终通过虚拟IP地址进行连接访问,就像是本地局域网访问一样。
二、软件直接本地映射到公网访问内网映射,即内网IP端口映射到公网的实现。原理是借助三方软件为载体,可以直接将本地指定内网IP端口,变成自定义域名端口,从而让外地使用域名来连接访问。 只要能上网,简单设置自定义域名端口绑定本地办公系统,即可让外地直接访问。使用nat123内网映射办公系统让外地访问的步骤:1.注册与下载:访问nat123官网,注册一个账号。 当自己是网络管理员,有公司路由权限,且核实路由WAN口是公网IP时,则可以通过公司路由设置,将公司内部办公系统提供外地访问。 公司路由设置转发规则,让外地访问公司内网办公系统步骤:1、进入路由器管理界面首先,确保你的电脑与路由器处于同一局域网。打开浏览器,在地址栏中输入路由器的 IP 地址。 如果设置后无法正常访问,可尝试重启路由器。5、公网IP访问当路由转发规则生效后,在外地个人电脑使用对应公司公网IP端口进行访问公司办公网站系统。
如何访问 pod 元数据 我们在 pod 中运行容器的时候,是否也会有想要获取当前 pod 的环境信息呢? 咱们写的 yaml 清单写的很简单,实际上部署之后, k8s 会给我们补充在 yaml 清单中没有写的字段,那么我们的 pod 环境信息和容器的元数据如何传递到容器中呢? 是不是也是通过获取这些 k8s 默认给我填写的字段呢? 环境中查看一下 kubernetes 服务的 ip ,我们可以这样来访问 在容器中访问 kubernetes 这是因为没有证书,我们需要导入证书和 token , 这样才能正确的访问到 ApiServer 之前我们查看过默认的 k8s 挂载的位置,/var/run/secrets/kubernetes.io/serviceaccount 这里面有 命名空间,证书,token 这个时候,我们访问 k8s
而在这时它们会访问同一个队列,所以为了减少窃取任务线程和被窃取任务线程之间的竞争,通常会使用双端队列,被窃取任务线程永远从双端队列的头部拿任务执行,而窃取任务的线程永远从双端队列的尾部拿任务执行。 用看forkjion的眼光来看ParallelStreams 上文中已经提到了在Java 8引入了自动并行化的概念。 自动并行化也被运用在Java 8新添加的Stream API中。 对于列表中的元素的操作都会以并行的方式执行。 可能有很多朋友在jdk7用future配合countDownLatch自己实现的这个功能,但是jdk8的朋友基本都会用上面的实现方式,那么自信深究一下究竟自己用future实现的这个功能和利用jdk8的 正如我们上面那个列子的情况分析得知,lambda的执行并不是瞬间完成的,所有使用parallel streams的程序都有可能成为阻塞程序的源头,并且在执行过程中程序中的其他部分将无法访问这些workers
集群内访问apiVersion: v1kind: Servicemetadata: name: test-k8sspec: selector: app: test-k8s type: ClusterIP 服务的默认类型是 ClusterIP ,只能在集群内部访问,我们可以进入到 Pod 里面访问: kubectl exec -it pod-name -- bash curl http://test-k8s :8080如果要在集群外部访问,可以通过端口转发实现(只适合临时测试用): kubectl port-forward service/test-k8s 8888:80802. 集群外访问apiVersion: v1kind: Servicemetadata: name: test-k8sspec: selector: app: test-k8s # 默认 ClusterIP 集群内可访问,NodePort 节点可访问,LoadBalancer 负载均衡模式(需要负载均衡器才可用) type: NodePort ports: - port: 8080
Docker启动Redis容器,步骤很简单,和启动mysql容器是一样的:Docker启动mysql。不过有个点需要注意,这里提醒一下:
在Kubernetes中,提供了Service和Ingress两种对象来实现应用间访问或外部对集群应用访问,这两种对象在实际的工作中会时长使用,非常重要的对象。 通过地址重写,我们可以实现诸如访问a.com/foo 重写到a.com,访问a.com/foo重写到a.com/foo/bar,需要注意的是重写后的地址需要是能真实访问到资源的地址,不然重写也没什么意义 如果我们把地址配置成可以访问的IP,则可以访问。 有时候访问量太大,可以通过在ingress进行限速,配置如下: apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nginx-limit Ingress进行访问。
然后,将网站的文件上传到Web服务器的根目录下,通过浏览器访问Web服务器的地址,就可以看到自己的网站了。狂热技术粉们都是怎么搭建自己的个人网站的呢?内网搭建的网站,外网又怎么才能正常访问呢? 然后浏览器中,查看自己网站访问状态。这个本地部署好的网站此时只能在本地局域网内访问,公网暂时还无法访问到。 想让外地打开访问,还需要下面步骤内网穿透技术应用的设置使用,以nat123端口映射为示例,直接将网站内网IP端口转换成自定义域名端口的实现。 默认提供生成随机二级域名和端口号,可以自定义如二级字符域名修改用,也可以修改使用自己注册的域名;图片然后点击确认保存即生效,客户端上多一个映射记录图示,包括 显示内外网地址信息,这个外网域名端口地址就是用于外地打开访问的 三、外网访问本地web网站当我们在本地或目标内网使用nat123映射设置好后,在外地浏览器访问时,使用对应的自定义设置好的域名(和外网端口号)即可,成功实现公网访问本地网站。
kubernetes/monitoring/new/kube-dashboard-v2.0.yaml 启动 kubectl proxy 显示:Starting to serve on 127.0.0.1:8001 访问 证书生成两种方式 x509证书crt文件的创建办法 截取k8s的证书 mkdir certs & certs/ grep 'client-certificate-data' ~/.kube/config
而在这时它们会访问同一个队列,所以为了减少窃取任务线程和被窃取任务线程之间的竞争,通常会使用双端队列,被窃取任务线程永远从双端队列的头部拿任务执行,而窃取任务的线程永远从双端队列的尾部拿任务执行。 用看forkjion的眼光来看ParallelStreams 上文中已经提到了在Java 8引入了自动并行化的概念。 自动并行化也被运用在Java 8新添加的Stream API中。 对于列表中的元素的操作都会以并行的方式执行。 可能有很多朋友在jdk7用future配合countDownLatch自己实现的这个功能,但是jdk8的朋友基本都会用上面的实现方式,那么自信深究一下究竟自己用future实现的这个功能和利用jdk8的 正如我们上面那个列子的情况分析得知,lambda的执行并不是瞬间完成的,所有使用parallel streams的程序都有可能成为阻塞程序的源头,并且在执行过程中程序中的其他部分将无法访问这些workers