KMS可以通过很多方法安装
1.使用EC2在亚马逊AWS云服务安装,使用AWS可以不用担心配置服务,因为安装的时候自动配置。
2.使用Kurento 的Docker镜像安装,docker可以保证Kurento在任何机器上运行,比如Fedora或者CentoOS系统,当然也可以运行在Windows上,但是Kurento团队没有在Window上适配过,因此你需要承担一定的风险。
3.通过apt-get install 命令本地安装,这个方法你可以控制安装选项。
除了安装Kurento外还要安装STUN/TURN服务,特别KMS或者客户端在NAT路由或者防火墙之后。(PS:在公网上安装或者有防火墙的时候需要安装STUN/TURN服务)
如果你需要即时编译KMS服务,你可以跳转到安装每日构建章节。(ps:第五章)
4.1AWS云服务安装
Kurento项目已经在AWS云上提供了模板文件,你可以通过创建一个EC2安装可以帮你完成所有的配置工作,包括TURN服务
这个模板默认在部署在亚马逊私有虚拟云网络,你需要亚马逊私有虚拟云网络
部署步骤如下:
1.访问亚马逊AWS云控制台
2.点击创建堆栈(Create Stack)
3.查看选择模板,选择Specify选项S3模板URL,可以粘贴如下URL
https://s3-eu-west-1.amazonaws.com/aws.kurento.org/KMS-Coturn-cfn-6.14.0.yaml
4.再通过配置向导配置
4.1堆名:堆的描述。
4.2安装类型:选择一个安装所需适当的大小,选其中一个。
4.3Key名:你需要创建一个RSA的key,你可以查看AWS文档如何去创建
4.4SSH登录:基于安全的原因你需要设置只能允许指定的规格SSH连接。
4.5TRUN用户:5TRUN用户名
4.6TRUN密码:使用TRUN的密码
---------------------------------------------------
提示:模板文件包括STUN服务和TURN,默认用户名密码是kurento/kuento,你可以改变用户名,但是必须修改默认密码
---------------------------------------------------
5.当状态显示为CREATE_COMPLETE就完成创建过程
· 6.运行服务器,你可以通过公网ip打开应用服务的URL
4.2Docker镜像安装
Kurento服务的镜像在Docker Hub上有各种发布版本,只需要跳转到kms的docker hub 页面,你就可以看到安装步骤
-----------------------------------------------------
提示:在docker容器内你不需要开放大的端口范围,相反你更应该使用 --network host
要详细的说明一下,正如Yorgos Saslis提到的:问题是鉴于Docker当前的状态,你不应该尝试开放大量的端口,你应该在任何地方都用主机网络,大量的端口会有很大的性能开销(你可以通过访问https://www.percona.com/blog/2016/02/05/measuring-docker-cpu-network-overhead/查看详细说明)
· 你也可以查看docker的11185问题
-----------------------------------------------------
4.3本地安装
使用这个方法安装Kurento服务,需要本地的Ubuntu包仓库使得kurento项目是可用的,KMS是提供两种Ubuntu版本:16.04(xenial)和Ubuntu18.04(BIonic)64位
打开命令行运行以下命令
1.确保GnuPG已经安装
sudo apt-get update
sudo apt-get install --no-install-recommends --yes gnupg
2.添加kurento仓库到系统配置里
#导入kurento 仓库的key
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83
#获取ubuntu版本定义
source /etc/upstream-release/lsb-release 2>/dev/null || source /etc/lsb-release
#添加kerento仓库配置到apt
sudo tee "/etc/apt/source.list.d/kurento.list" >/dev/null <<EOF
#安装kurento服务包
deb [arch=amd64] http://ubuntu.openvidu.io/6.14.0 $DISTRIB_CODENAME kms6
EOF
3.安装KMS
注意:这些步骤只适合于第一次安装,如果你已经安装并希望更新,可以使用以下步骤
sudo apt-get update && sudo apt-get install --no-install-recommends --yes kurento-media-server
你可以使用以下命令启动和停止服务
sudo service kurento-media-server start
sudo service kurento-media-server stop
日志信息可以在/var/log/kurento-media-server/查看,想看更多KMS日志,可以打开调试日志(ps:可以跳到查看调试日志那章)
4.4本地升级
想要升级本地安装的kurento服务,你必须在/etc/apt/source.list.d/kurento.list文件添加一个新版本,编辑这个文件之后,你可选择两种升级方法
A.更新所有系统包。
这是维护Debian和Unbuntu标准方法,更新所有系统包能保证所有都是最新版本,所有的Bug都解决,所以这是一个推存的方法,命令如下
sudo apt-get update && sudo apt-get dist-upgrade
不要在docker容器内运行上面的命令,相反你应该更新最新版本的kurento服务的docker镜像
B。卸载老的kurento版本,后安装新的版本
使用apt-get 去卸载kurento版本不是一个好的方法,可以使用aptitude可能会更好用
sudo aptitude remove '?installed?version(kurento)'
sudo apt-get update&& sudo apt-get install --no-install-recommends --yes kurento-media-server ----------------------------------
注意:如果你更新kurento包失败,你会得到错误的行为和崩溃,kurento由以下几个包
kurento-media-server
kurento-module-creator
kms-core
kms-elements
kms-filters
libnice10
libusrsctp
openh264
openwebrtc-gst-plugins
等等
更新kurento包你必须更新所有的包,不仅仅是第一个
----------------------------------
4.5.STUN/TURN服务安装
使用WebRTC必须要开发者知道NAT,ICE,STUN,和TURN所有信息,如果不知道这些,你应该看一下这个 关于NAT,ICE,STUN,TURN。
当使用本地连接KMS像WebRTC一样可以工作的很好,如果只运行在本地网络,只需要安装KMS就可以。
以后你可能会把服务部署到云环境中,允许KMS可以运程客户端连接服务,远程客户端不能在NAT路由到服务器,因此你你的应用程序需要NAT穿透,你可以安装STUN服务或者TRUN,然后配置KMS服务器和浏览器。
下面的链接包括配置你的在你的KMS服务配置STUN/TURN服务
怎样安装cotrun?
怎么测试你的STUN/TURN服务
怎么配置STUN/TURN
4.6安装检查
验证你的kurento服务已经启动并运行,使用下面命令查看你的kurento服务状态
ps -FC kurento-media-server
UID PID PPID C STIME TTY TIME CMD
kurento 7688 1 0 13:36 ? 00:00:00 /usr/bin/kurento-media-server
除非配置成别的,KMS监听IPV6协议端口是8888,接收kurento协议的RPC请求和发送kurento协议的RPC的响应
sudo netstat -tupln |grep -e kurento -e 8888
tcp6 0 0 :::8888 :::* LISTEN 7688/kurento-media
你可以修改/etc/kurento/kurento.conf.json 文件内的参数
检查KMS是启动并监听连接可以使用以下命令:
curl \
--include \
--header "Connection: Upgrade" \
--header "Upgrade: websocket" \
--header "Host: 127.0.0.1:8888" \
--header "Origin: 127.0.0.1" \
http://127.0.0.1:8888/kurento
你可以看到如下响应:
HTTP/1.1 500 Internal Server Error
Server: WebSocket++/0.7.0
忽略这个服务错误信息,这个返回是正常的,这个返回就证明KMS服务已经启动并开始监听
如果你需要自动化配置,你可以写一个与healthchecker.sh相似的脚本,healthchecker.sh文件是用在kurento的docker镜像的。