共计 5976 个字符,预计需要花费 15 分钟才能阅读完成。
Docker 编排包括调度容器、管理集群和在 Docker 环境中置备更多主机。
Kubernetes
Kubernetes 是一个开源系统,用于自动化容器化应用程序的部署、操作和扩展。它将应用程序中的容器分组到逻辑单元中,以方便管理和发现。
Kubernetes 是 Docker 容器的开源编排引擎,采用了主从概念。以下是 Kubernetes 集群的主要组件:
- 主节点:监督一个或多个节点(下属)的集群管理器。
- 节点、下属或从节点:负责启动容器的集群成员。
- Pod:Kubernetes 中的基本操作单元。它表示一个或多个容器,这些容器构成一个在从节点(下属)上运行的应用程序(或部件)。
可用性
下表列出了针对 PowerPC LE (ppc64le) 平台的相关包的位置:
[1] Unicamp 存储库 – http://ftp.unicamp.br/pub/ppc64el/rhel/7_1/misc_ppc64el/
在 RHEL 7.1 LE 上设置一个 Kubernetes 集群
安装和设置 Kubernetes
确保以下 Unicamp 存储库添加到了将包含在 Kubernetes 集群中的所有系统:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # cat > /etc/yum.repos.d/unicamp-docker.repo <<EOF[unicamp-docker]name=Unicamp Repo for Docker Packagesbaseurl=http://ftp.unicamp.br/pub/ppc64el/rhel/7_1/docker-ppc64el/enabled=1gpgcheck=0EOF# cat > /etc/yum.repos.d/unicamp-misc.repo <<EOF[unicamp-misc]name=Unicamp Repo for Misc Packagesbaseurl=http://ftp.unicamp.br/pub/ppc64el/rhel/7_1/misc_ppc64el/enabled=1gpgcheck=0EOF |
安装和设置 Kubernetes 主节点
- 安装所需的包。
# yum install kubernetes-client kubernetes-master etcd - 打开 Network Ports。默认情况下,kubernetes api 服务器在端口 8080 上监听 kubelets。确保它未被本地防火墙拦截。如果使用了防火墙,可运行以下命令来打开一个针对 公共 区域的 TCP 端口。12
# firewall-cmd --zone=public --add-port=8080/tcp --permanent# firewall-cmd --reload此外,etcd 服务器默认情况下在端口 2379 上执行监听。按照以下说明打开相应的端口:
12# firewall-cmd --zone=public --add-port=2379/tcp --permanent# firewall-cmd –reload - 配置 Kubernetes 主节点。对于剩余配置步骤,假设 Kubernetes 主节点拥有 IP 地址 192.168.122.76,Kubernetes 节点拥有 IP 地址 192.168.122.236。
根据环境来修改 /etc/kubernetes/config 文件。基于上述信息,修改的文件具有以下内容:1234567# logging to stderr means we get it in the systemd journal KUBE_LOGTOSTDERR="--logtostderr=true"# journal message level, 0 is debugKUBE_LOG_LEVEL="--v=0"# Should this cluster be allowed to run privileged docker containersKUBE_ALLOW_PRIV="--allow-privileged=false"# How the controller-manager, scheduler, and proxy find the apiserverKUBE_MASTER="--master=http://192.168.122.76:8080"根据环境来修改 /etc/kubernetes/apiserver 文件。基于上述信息,修改的文件具有以下内容:
1234567891011121314# The address on the local server to listen to.KUBE_API_ADDRESS="--address=0.0.0.0"# The port on the local server to listen on.# KUBE_API_PORT="--port=8080”# Port minions listen on# KUBELET_PORT="--kubelet-port=10250"# Comma separated list of nodes in the etcd clusterKUBE_ETCD_SERVERS="--etcd-servers=http://192.168.122.76:2379"# Address range to use for servicesKUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"# default admission control policiesKUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"# Add your own!KUBE_API_ARGS="" - 配置 Etcd。修改 /etc/etcd/etcd.conf 文件中的以下两个参数,如下所述:12
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379" - 启动服务。12345
# for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; dosystemctl restart $SERVICESsystemctl enable $SERVICESsystemctl status $SERVICESdone
安装和设置 Kubernetes 节点(下属)
- 安装所需的包。1
# yum install docker-io kubernetes-client kubernetes-node - 配置 Kubernetes 节点。根据环境来修改 /etc/kubernetes/ kubelet。基于上述信息,修改的文件具有以下内容:1234567891011
# kubernetes kubelet (minion) config# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)KUBELET_ADDRESS="--address=0.0.0.0"# The port for the info server to serve on# KUBELET_PORT="--port=10250"# You may leave this blank to use the actual hostnameKUBELET_HOSTNAME=" "# location of the api-serverKUBELET_API_SERVER="--api-servers=http://192.168.122.76:8080"# Add your own!KUBELET_ARGS="—pod-infra-container-image=gcr.io/google_containers/pause-ppc64le:2.0" - 启动服务。12345
# for SERVICES in kube-proxy kubelet docker; dosystemctl restart $SERVICESsystemctl enable $SERVICESsystemctl status $SERVICESdone - 验证设置。登录到主节点并运行 kubectl get nodes 来检查可用节点。123
[root@localhost ~]# kubectl get nodesNAME LABELS STATUS AGEfed-node kubernetes.io/hostname=fed-node Ready 1h - 从集群中的任何节点登录到私有注册表,以获取注册表身份验证 config 文件。123456789
# docker login https://registry-rhel71.kube.com:5000# cat /root/.docker/config.json{"auths": {"https://registry-rhel71.kube.com:5000": {"auth": "cHJhZGlwdGE6cHJhZGlwdGE=","email": "test@test.com"}}
将此配置文件 (config.json) 复制到 Kubernetes 集群中的所有节点,方法是将其复制到路径 /root/.docker/config.json。该集群现在已设置为使用私有注册表服务器。
Docker Swarm:Docker 主机的原生集群
Docker Swarm 是 Docker 的原生集群。Swarm 将一个 Docker 主机池转换为单个、虚拟的 Docker 主机。因为 Docker Swarm 提供了标准的 Docker API,任何已经与 Docker 守护进程建立通信的工具都可以使用 Swarm 透明地扩展到多个主机。
从概念上讲,Swarm 集群类似于:

可用性
目前,您必须利用 https://github.com/docker/swarm 网站中的源代码为 Power 平台构建 Docker Swarm。
Power 服务器上的设置
完成以下步骤,以便在运行 Ubuntu LE 的 Power 服务器上使用 Swarm:
运行以下命令。
1 2 3 4 5 6 | $ mkdir ~/go.prj$ export GOPATH=~/go.prj$ export PATH=$PATH:~/go.prj/bin$ go get github.com/tools/godep$ go get github.com/docker/swarmswarm binary will be available under $GOPATH/bin/ |
入门
- 对于每个必须包含在 Swarm 集群中的 Docker 主机,可配置 Docker 守护进程来通过 TCP 公开 Docker API。
docker -H tcp://0.0.0.0:2375 daemon最好设置 TLS 来保护 Docker、Swarm 和客户端之间的通信。
- 运行 Swarm 并注册主机。
- 如果您使用的是 Docker Swarm 镜像,可运行以下命令:
docker run -H tcp://0.0.0.0:2375 -d swarm join --addr=<node_ip:2375> <discovery-option> - 如果您使用的是从源代码构建的 Swarm,可以运行以下命令:
swarm join --addr=<node_ip:2375> <discovery-option>
- 如果您使用的是 Docker Swarm 镜像,可运行以下命令:
- 在指定的机器上启动 Swarm 管理服务。
- 如果您使用的是 Docker Swarm 镜像,可以运行以下命令:
docker run -d -p <swarm_cluster_mgr_port>:2375 swarm manage <discovery-option> - 如果您使用的是从源代码构建的 Swarm,可以运行以下命令:
swarm manage <discovery-option>
- 如果您使用的是 Docker Swarm 镜像,可以运行以下命令:
发现和集群成员关系
Swarm 支持多种发现 Swarm 节点和创建集群的机制。
- 托管发现
- 使用 token://cluster_id 作为发现选项
- 托管在 https://discovery-stage.hub.docker.com 上
- 文件
- 以 <ip>:<port> 格式将 Docker 主机添加到文件
- 使用 file://path_to_file 作为发现选项
- 直接显示在命令行接口中的逗号分隔的节点细节列表 (<ip>:<port>)
- Etcd
使用 etcd://<etcd_ip>/<path> 作为发现选项 - Consul
使用 consul://<consul_ip>/<path> 作为发现选项 - Zookeeper
使用 zk://<zookeeper_addr1>,<zookeeper_addr2>/<path> 作为发现选项
更多 Docker 相关教程见以下内容:
Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm
Ubuntu 14.04 安装 Docker http://www.linuxidc.com/linux/2014-08/105656.htm
Ubuntu 使用 VNC 运行基于 Docker 的桌面系统 http://www.linuxidc.com/Linux/2015-08/121170.htm
阿里云 CentOS 6.5 模板上安装 Docker http://www.linuxidc.com/Linux/2014-11/109107.htm
Ubuntu 15.04 下安装 Docker http://www.linuxidc.com/Linux/2015-07/120444.htm
在 Ubuntu Trusty 14.04 (LTS) (64-bit)安装 Docker http://www.linuxidc.com/Linux/2014-10/108184.htm
在 Ubuntu 15.04 上如何安装 Docker 及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm
Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-12/137787.htm






