如何使用ingess控制器设置kubernetes仪表板

时间:2018-03-21 08:22:07

标签: kubernetes dashboard kubernetes-ingress

我对kubernetes的想法很新。 我在网上找到了一些很好的教程,让我的kubernetes群集得到了提升。运行。 现在我想在我的集群中添加一个kubernetes仪表板,这样我就可以轻松地查看我的pod和节点的反应(甚至我更像是一个CLI人员,一些GUI也不错)。 我已经下载了仪表板盒,它已启动并运行。因为kubernetes集群在Raspberry Pi集群上运行,所以我设置了一个NodePort来从集群外部访问它。但我遇到了一些问题,我在网上找不到任何问题。

  1. 在我的Linux主机上,我可以访问kubernetes仪表板但不知何故在我的Linux机器上,我的浏览器不会添加证书异常。
  2. 网上有些人确信NodePort不够安全。所以我对其他可能性进行了一些研究。我对入口控制器非常感兴趣,可以连接我的仪表板。但我没有找到任何好的和完整的文档如何设置入口控制器(更重要的是发生了什么,因为有很多yaml文件在线,他们说只是运行这个但我不知道他在做什么)。
  3. 有人可以指导我找到正确的文档/教程/或者为我的Kube仪表板提供任何帮助吗?

2 个答案:

答案 0 :(得分:0)

其他论坛中有人发给我这个非常有帮助的教程。我也会在这里分享所有以同样的问题来到这篇文章的人。

https://akomljen.com/kubernetes-nginx-ingress-controller/

答案 1 :(得分:0)

您需要在部署中使用的第一件事是Ingress,所以让我们从它开始。

首先你应该创建一个Ingress控制器,你可以找到Installation Guide here

最相关的是第一部分 - 通用部署,其中包括以下内容:

Ingress控制器安装的命名空间:

type Sport (name: string) =
    member x.Name = name

type Individual(name: string) =
    inherit Sport(name)

type Team(name: string, numberOfPlayers : int) =
    inherit Sport(name)
    member x.numberOfPlayers = numberOfPlayers


let MK = new Individual("Combate Mortal")
let SF = new Individual("Lutadores de Rua")
let Tk = new Individual("Tekken Chupa")

let MvC = new Team("Marvel Contra Capcom", 3)
let Dbz = new Team("Bolas do Dragao", 3)

let interpretSport (sport:string) (players:int)  =
    match sport with
    | "Combate Mortal" -> printfn "Rank1"  
    | "Lutadores de Rua" -> printfn "Rank2"
    | "Tekken Chupa" -> printfn "Rank3"
    | "Bolas do Dragao" -> printfn "Rank4. No of players: %d " players
    | "Marvel Contra Capcom" -> printfn "Rank5. No of players: %d" players
    | _ -> printfn "not a sport in our list..." 



let matchSport (sport:Sport)  = 
    match sport with
    | :? Individual -> interpretSport(sport.Name)
    | :? Team as teamSport -> interpretSport(teamSport.Name,teamSport.numberOfPlayers)
    | _ -> printfn "not a sport" 

matchSport(MK)
matchSport(SF)
matchSport(Tk)
matchSport(MvC)
matchSport(Dbz)

Ingress控制器的默认后端:

curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/namespace.yaml \ | kubectl apply -f -

并配置地图:

curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/default-backend.yaml \ | kubectl apply -f -

由于您在Raspberry Pi上部署了群集,因此所有这些都需要手动创建。

安装Ingress控制器后,您可以为Ingress部署特定配置,并使用规则将流量路由到您的服务。

以下是Ingress yaml文件的示例:

curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/configmap.yaml \ | kubectl apply -f - 
curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/tcp-services-configmap.yaml \ | kubectl apply -f - 
curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/udp-services-configmap.yaml \ | kubectl apply -f -

这将作为群集的外部代理,您可以将所有流量路由到任何服务。更多细节可以是read here

这足以让Kubernetes仪表板暴露出来。