首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

一个混合(IBM Power 和 x86)架构场景中的 Mesos 和 Kubernetes-3

一个混合(IBM Power 和 x86)架构场景中的 Mesos 和 Kubernetes-3

将 Mesos 从属节点部署到 192.168.1.6(Power) 中:
  • 添加存储库。
    1
    2
    3
    4
    5
    6
    7
    8
    #cat > /etc/yum.repos.d/cluster.repo <<EOF
    [cluster]
    name=cluster baseurl=http://ftp.unicamp.br/pub/ppc64el/rhel/7_1/misc_ppc64el/
    enabled=1
    gpgcheck=0
    priority=10
    sslverify=1
    EOF




  • 安装 Mesos 从属节点。
    yum -y install mesos-0.22.1 python-mesos




  • 配置 Mesos 从属节点。编辑 /etc/sysconfig/mesos-slave 中的变量(下面已突出显示):
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    # This file contains environment variables that are passed to mesos-slave.
    # To get a description of all options run mesos-slave --help; any option
    # supported as a command-line option is also supported as an environment
        # variable.
         
    # The mesos master URL to contact. Should be host:port for
    # non-ZooKeeper based masters, otherwise a zk:// or file:// URL.
    MESOS_master=zk://192.168.1.2:2181,192.168.1.3:2181,192.168.1.4:2181/mesos
    MESOS_EXECUTOR_REGISTRATION_TIMEOUT=10mins
    MESOS_IP=192.168.1.6

    # For isolated sandbox testing
    # MESOS_master=127.0.0.1:5050

    # For a complete listing of options execute 'mesos-slave --help'
    MESOS_log_dir=/var/log/mesos
    MESOS_work_dir=/var/run/mesos
    MESOS_containerizers=docker,mesos

    # systemd cgroup integration
    MESOS_isolation='cgroups/cpu,cgroups/mem'
    MESOS_cgroups_root='system.slice/mesos-slave.service'
    MESOS_cgroups_hierarchy=/sys/fs/cgroup




  • 启动 mesos-slave 服务。
    service emsos-slave start




部署 Kubernetes 仪表板
用于该混合架构的 Kubernetes 和 Mesos 框架已完成。现在,我们应该部署它的仪表板。对于本例,在 x86 架构的从属节点中运行该仪表板。
首先,我们应该为每个从属节点添加标签。
  • 为每个基于 x86 架构的从属节点添加标签 arch=x86。
    docker run -e KUBERNETES_MASTER_IP=192.168.1.2 -e KUBERNETES_MASTER=192.168.1.2:8888 powerkvm/k8s-mesos-x86:v1.4.0-alpha kubectl label nodes 192.168.1.5 arch=x86




  • 为每个基于 Power 架构的从属节点添加标签 arch=ppc64le。
    docker run -e KUBERNETES_MASTER_IP=192.168.1.2 -e KUBERNETES_MASTER=192.168.1.2:8888 powerkvm/k8s-mesos-x86:v1.4.0-alpha kubectl label nodes 192.168.1.6 arch=ppc64le




  • 检查结果。
    docker run -e KUBERNETES_MASTER_IP=192.168.1.2 -e KUBERNETES_MASTER=192.168.1.2:8888 powerkvm/k8s-mesos-x86:v1.4.0-alpha kubectl get nodes --show-labels
    NAME                       STATUS         AGE           LABELS
    192.168.1.5                Ready          2d            arch=x86,kubernetes.io/hostname=192.168.1.5
    192.168.1.6                Ready          2d            arch=ppc64le,kubernetes.io/hostname=192.168.1.6




  • 下载 Kubernetes 仪表板。
    git clone https://github.com/kubernetes/dashboard.git /root/dashboard




  • 将 nodeSelector 和 apiserver 添加到 kubernetes-dashboard-canary.yaml 中
    cat /root/dashboard/src/deploy/kubernetes-dashboard-canary.yaml

      spec:
         containers:
         - name: kubernetes-dashboard-canary
           image:gcr.io/google_containers/kubernetes-dashboard-amd64:canary
         …
           args:
           - --apiserver-host=http://192.168.1.2:8888
         …
         nodeSelector:
           arch: x86 …




  • 为该仪表板运行 Kubernetes 服务。
    docker run --privileged -v /root/dashboard:/root/dashboard -e KUBERNETES_MASTER_IP=192.168.1.2 -e KUBERNETES_MASTER=192.168.1.2:8888 powerkvm/k8s-mesos-x86:v1.4.0-alpha kubectl create -f /root/dashboard/src/deploy/kubernetes-
    dashboard-canary.yaml --namespace="kube-system"




  • 检查服务和 pod。
    检查服务:
    docker run -e KUBERNETES_MASTER_IP=192.168.1.2 -e KUBERNETES_MASTER=192.168.1.2:8888 powerkvm/k8s-mesos-x86:v1.4.0-alpha kubectl get services --namespace="kube-system"
    NAME                  CLUSTER-IP       EXTERNAL-IP     PORT(S)     AGE
    dashboard-canary      10.10.10.14      <nodes>         80/TCP      21m




    获取仪表板服务的 nodePort:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    docker run -e KUBERNETES_MASTER_IP=192.168.1.2 -e KUBERNETES_MASTER=192.168.1.2:8888 powerkvm/k8s-mesos-x86:v1.4.0-alpha kubectl describe services dashboard-canary --namespace="kube-system"
    Name: dashboard-canary
    Namespace: kube-system
    Labels: app=kubernetes-dashboard-canary
    Selector: app=kubernetes-dashboard-canary
    Type: NodePort
    IP: 10.10.10.14
    Port: <unset> 80/TCP
    NodePort: <unset> 31810/TCP
    Endpoints: <none>
    Session Affinity: None




    检查 pod:
    docker run --privileged -v /root/dashboard:/root/dashboard -e KUBERNETES_MASTER_IP=192.168.1.2 -e KUBERNETES_MASTER=192.168.1.2:8888 powerkvm/k8s-mesos-x86:v1.4.0-alpha kubectl get pods --namespace="kube-system"
    NAME                                 READY    STATUS    RESTARTS    AGE
    kubernetes-dashboard-canary-x5wqg    1/1      Running   0           1h




Web UI
现在,我们已成功部署了 Kubernetes 和 Mesos。让我们检查一下 Mesos 的网页和仪表板。
对于 Mesos UI,我们可以通过访问任何 Mesos 主节点的 IP 和端口 5050 来访问主页。
例如,[任何 Mesos 主节点的 IP] :5050
图 2. Mesos 主页对于仪表板,我们可以通过访问任何 Mesos 从属节点的 IP 和 nodePort 来访问主页。
例如:[任何 Mesos 从属节点的 IP] : nodePort.
可以从仪表板服务的描述中获得 nodePort。
也可以使用以下命令获得 nodePort:
docker run -e KUBERNETES_MASTER_IP=192.168.1.2 -e KUBERNETES_MASTER=192.168.1.2:8888 powerkvm/k8s-mesos-x86:v1.4.0-alpha kubectl describe services dashboard-canary --namespace="kube-system"




图 3. Kubernetes 仪表板结束语本文介绍了如何将 kubernetes 和 Mesos 部署在一个混合(Power 和 x86)架构场景中。还介绍了如何使用 label 和 nodeSelector 将该服务部署到 x86 架构上。
返回列表