首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过网络访问microk8s外部公开的服务ip?

如何通过网络访问microk8s外部公开的服务ip?
EN

Ask Ubuntu用户
提问于 2020-06-08 21:47:37
回答 1查看 7.1K关注 0票数 0

我正在Ubuntu服务器上作为普通安装运行一个microk8s实例,配置为MetalLB,动态分配10.0.2.1到10.0.2.200,启用Nginx控制器。我已经使用以下命令在此实例(https://github.com/bitnami/charts/tree/master/bitnami/wordpress/#installing-the-chart)上安装了wordpress头盔图表:

代码语言:javascript
复制
helm install wordpress \
  --set wordpressUsername=admin \
  --set wordpressPassword=password \
  --set mariadb.mariadbRootPassword=secretpassword \
  --set ingress.enabled=true \
  --set ingress.hostname=wordpress.internal \
    bitnami/wordpress

服务已启动并成功运行,并且当我运行时

代码语言:javascript
复制
kubectl describe services wordpress

我得到以下信息:

代码语言:javascript
复制
Name:                     wordpress
Namespace:                default
Labels:                   app.kubernetes.io/instance=wordpress
                          app.kubernetes.io/managed-by=Helm
                          app.kubernetes.io/name=wordpress
                          helm.sh/chart=wordpress-9.3.10
Annotations:              meta.helm.sh/release-name: wordpress
                          meta.helm.sh/release-namespace: default
Selector:                 app.kubernetes.io/instance=wordpress,app.kubernetes.io/name=wordpress
Type:                     LoadBalancer
IP:                       10.152.183.73
LoadBalancer Ingress:     10.0.2.1
Port:                     http  80/TCP
TargetPort:               http/TCP
NodePort:                 http  31799/TCP
Endpoints:                10.1.70.14:8080
Port:                     https  443/TCP
TargetPort:               https/TCP
NodePort:                 https  30087/TCP
Endpoints:                10.1.70.14:8443
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason        Age                  From                Message
  ----    ------        ----                 ----                -------
  Normal  IPAllocated   32m                  metallb-controller  Assigned IP "10.0.2.1"
  Normal  nodeAssigned  6m41s (x3 over 31m)  metallb-speaker     announcing from node "k8s"

当我被加载到安装microk8s的节点上时,实例会如我所期望的那样进行响应:

代码语言:javascript
复制
curl 10.0.2.1

<!DOCTYPE html>

<html class="no-js" lang="en-US">

    <head>

        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0" >

        <link rel="profile" href="https://gmpg.org/xfn/11">

        <title>User's Blog! – Just another WordPress site</title>

但是,当我在联网的Macbook上运行相同的命令时,我无法得到响应:

代码语言:javascript
复制
curl 10.0.2.1

curl: (7) Failed to connect to 10.0.2.1 port 80: Operation timed out
EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2020-06-09 01:49:05

注意到以下两种方法行之有效:

  1. 通过端口进行访问(导航到localhost:8080在浏览器中使用以下命令)
代码语言:javascript
复制
kubectl port-forward *podname-here* 8080:8080 
  1. NodePort (导航到K8S浏览器-主-ip:31799)

我将问题隔离到我分配给metallb的IP范围。问题是,我为metallb分配了一个IP范围(10.0.2.1-10.0.2.200),它位于我的使用者路由器(Apple Airport极限)配置的子网掩码之外。一旦我将IP范围更改为路由器允许的子网中的IP范围(10.0.1.100-10.0.1.150),到服务IP的导航就会像预期的那样工作。

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

https://askubuntu.com/questions/1248327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档