我已經在具有一個主節點和兩個節點的AWS集羣中安裝了mesosphere,稱它們爲master,node1和node2。主人是可見的,節點是私人的。馬拉松不安全註冊表上的Docker註冊表
我得到一個默認運行的marathon實例和背面的docker支持。 Docker版本是1.6(已驗證)。
因此,我安裝使用馬拉松泊塢窗註冊表圖像中Marathon docs描述,與S3支持幾個變種,如:
{
"id": "/docker/registry",
"instances": 1,
"cpus": 0.5,
"mem": 1024.0,
"disk": 128,
"container": {
"docker": {
"type": "DOCKER",
"image": "registry:2",
"network": "BRIDGE",
"portMappings": [
{
"containerPort": 5000,
"hostPort": 0,
"protocol": "tcp",
"servicePort": 5000
}
]
},
"volumes": []
},
"env": {
"APPLICATION_WEB_PROXY_BASE": "/service/docker_registry",
"SETTINGS_FLAVOR": "s3",
"REGISTRY_VERSION": "0.1",
"REGISTRY_LOG_LEVEL": "debug",
"REGISTRY_STORAGE": "s3",
"REGISTRY_STORAGE_S3_ACCESSKEY": "ACCESSKEY",
"REGISTRY_STORAGE_S3_SECRETKEY": "SECRETKEY",
"REGISTRY_STORAGE_S3_REGION": "us-east-1",
"REGISTRY_STORAGE_S3_BUCKET": "my-docker-registry",
"REGISTRY_STORAGE_S3_ROOTDIRECTORY": "/docker",
"AWS_PATH": "/docker",
"STORAGE_PATH": "/docker"
},
"ports": [ 0 ]
}
泊塢窗註冊表服務中的節點中的一個開始。說... node1.amazonaws.com:23456。請注意,節點和端口是由馬拉松隨機選擇的。如果我重新啓動,並且我不知道將事先選擇哪個節點和端口,則無法保證再次選取相同的節點和端口。
因此,註冊表工作,我可以使用其餘的API(從主ssh行)作爲:wget node1.amazonaws.com:23456/v2,我得到正確的JSON響應{}。
但後來我想這樣做推到服務器,我得到這樣的消息
"FATA[0000] Error response from daemon: v1 ping attempt failed with error:
Get https://myregistrydomain.com:5000/v1/_ping: tls: oversized record received with length 20527.
If this private registry supports only HTTP or HTTPS with an unknown CA certificate,please add
`--insecure-registry myregistrydomain.com:5000` to the daemon's arguments.
In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag;
simply place the CA certificate at /etc/docker/certs.d/myregistrydomain.com:5000/ca.crt"
所以我想我需要設置不安全的註冊表標誌。或設置CA證書。因爲我現在不需要證書,所以我只需要讓它不安全。但是這個標誌必須設置爲--insecure-registry myregistrydomain.com:5000
。
但是,然後你得到的問題,主機和端口都動態設置。所以我不能把它放到任何地方的配置文件中(而且我不知道它是在哪裏使用CoreOS,並且沒有/ etc/default/docker文件)。
我試圖將它傳遞到Marathon JSON應用程序。我記得有可能使用$HOST
和$PORT
ENV變量,所以我試圖在容器中加入它們作爲參數爲:
...
container:
"network": "BRIDGE",
"parameters": [{ "key": "insecure-registry", "value": "$HOST:$PORT" }],
"portMappings": [
...
但服務就不會啓動。然後,我嘗試將它設置在ARGS:
...
"disk": 128,
"args": ["--insecure-registry $HOST:$PORT"],
"container": {
...
但我得到一個消息,說:
Executor registered on slave 20150928-002726-2617573386-5050-1278-S1 flag provided but not defined: -insecure-registry
所以我試着設置一個DOCKER_OPTS環境變量爲:
"env": {
"DOCKER_OPTS": "--insecure-registry $HOST:$PORT",
"APPLICATION_WEB_PROXY_BASE": "/service/docker_registry",
但它只是忽略了國旗。
換句話說,我不知道在哪裏使它不安全。
任何想法將不勝感激。
謝謝!
我想所以,但是這不會打敗HA的想法嗎?我的意思是......如果節點崩潰,那麼馬拉松應該能夠在另一個節點中產生另一個服務實例。通過約束節點,我失去了擁有集羣的主要優點之一。 –
正確。我的意思是:您可以使用約束來影響您的部署,這可能對您有所幫助。可能不是我給出的最好的例子,授予。 –
我認爲這個問題是錯的。因爲我一直在閱讀不安全的註冊表標誌是一個碼頭客戶端的事情,而不是一個 –