一个混合(IBM Power 和 x86)架构场景中的 Mesos 和 Kubernetes-3
- UID
- 1066743
|
一个混合(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 仪表板。
- 将 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 架构上。 |
|
|
|
|
|