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鏡像的。