我正在尝试在EC2中使用一个品牌闪亮的新coreos集群上使用fleet部署nsqlookupd.这是我的systemd单元文件:
[Unit]
Description=nsqlookupd service
After=docker.service
Requires=docker.service
[Service]
EnvironmentFile=/etc/environment
ExecStartPre=-/usr/bin/docker kill nsqlookupd
ExecStartPre=-/usr/bin/docker rm nsqlookupd
ExecStart=/usr/bin/docker run -d --name=nsqlookupd -e BROADCAST_ADDRESS=$COREOS_PUBLIC_IPV4 -p 4160:4160 -p 4161:4161 mikedewar/nsqlookupd
ExecStartPost=/usr/bin/etcdctl set /nsqlookupd_broadcast_address $COREOS_PUBLIC_IPV4
ExecStop=/usr/bin/docker stop -t 1 nsqlookupd
ExecStopPost=/usr/bin/etcdctl rm /nsqlookupd_broadcast_address
Run Code Online (Sandbox Code Playgroud)
如果我只是运行ExecStart命令,我已经验证了容器工作正常.我的码头日志看起来像
~ $ docker logs nsqlookupd
2014/08/08 02:23:58 nsqlookupd v0.2.29-alpha (built w/go1.2.2)
2014/08/08 02:23:58 TCP: listening on [::]:4160
2014/08/08 02:23:58 HTTP: listening on [::]:4161
Run Code Online (Sandbox Code Playgroud)
我的fleetctl期刊看起来像
$ fleetctl journal nsqlookupd.service
-- Logs begin at Sun 2014-08-03 12:49:00 UTC, end at Fri 2014-08-08 …Run Code Online (Sandbox Code Playgroud) 我正在努力评估Kubernetes.我有兴趣在CoreOS集群上安装kubernetes,官方文档不多,只有两篇对CoreOS博客的引用; 我目前正在使用指南在CoreOS第1部分上运行kubernetes示例.
我的apiserver.service:
[Unit]
ConditionFileIsExecutable=/opt/kubernetes/bin/apiserver
Description=Kubernetes API Server
[Unit]
ConditionFileIsExecutable=/opt/kubernetes/bin/controller-manager
Description=Kubernetes Controller Manager
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service]
ExecStart=/opt/kubernetes/bin/controller-manager \
--etcd_servers=http://127.0.0.1:4001 \
--master=127.0.0.1:8080 \
--logtostderr=true
Restart=on-failure
RestartSec=1
[Install]
WantedBy=multi-user.target
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service]
ExecStart=/opt/kubernetes/bin/apiserver \
--address=127.0.0.1 \
--port=8080 \
--etcd_servers=http://127.0.0.1:4001 \
--machines=127.0.0.1 \
--logtostderr=true
Restart=on-failure
RestartSec=1
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
我的controller-manager.service:
[Unit]
ConditionFileIsExecutable=/opt/kubernetes/bin/controller-manager
Description=Kubernetes Controller Manager
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service]
ExecStart=/opt/kubernetes/bin/controller-manager \
--etcd_servers=http://127.0.0.1:4001 \
--master=127.0.0.1:8080 \
--logtostderr=true
Restart=on-failure
RestartSec=1
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
我的kubelet.service:
[Unit]
ConditionFileIsExecutable=/opt/kubernetes/bin/kubelet
Description=Kubernetes Kubelet
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service]
ExecStart=/opt/kubernetes/bin/kubelet \
--address=127.0.0.1 \
--port=10250 \
--hostname_override=127.0.0.1 …Run Code Online (Sandbox Code Playgroud) 我正在使用Windows 8.1 Pro pc运行vagrant和cygwin的rsync.
我这样配置:
config.vm.synced_folder "../sharedFolder", "/vagrant_data", type: "rsync"
Run Code Online (Sandbox Code Playgroud)
当我执行时,vagrant up我收到以下错误:
C:\dev\vagrantBoxes\coreOS>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'yungsang/coreos' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting …Run Code Online (Sandbox Code Playgroud) 我很难过.我正在尝试在Windows 8.1上运行vagrant/virtualbox/coreos集群来开发用于在云中运行的集群.我在四台机器上尝试了这一点(所有这些都是带有最新更新的Windows 8.1,并且都配有最新的VirtualBox,Vagrant,Git和Vagrant的相同配置.我正在检查所有4系统上的回购中的Vagrant配置所以我相信每个人的配置是相同的.我获得了2次成功和2次失败.
两台机器成功如下:
Bringing machine 'core-01' up with 'virtualbox' provider...
==> core-01: Checking if box 'coreos-stable' is up to date...
(snip)
core-01: SSH address: 127.0.0.1:2222
core-01: SSH username: core
core-01: SSH auth method: private key
core-01: Warning: Connection timeout. Retrying...
==> core-01: Machine booted and ready!
==> core-01: Setting hostname...
==> core-01: Configuring and enabling network interfaces...
Run Code Online (Sandbox Code Playgroud)
流浪的ssh和vagrant都可以在这两个系统上正常工作.
另外两台Windows机器失败如下:
Bringing machine 'core-01' up with 'virtualbox' provider...
==> core-01: Importing base box 'coreos-stable'...
==> core-01: Matching …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用自托管的docker注册表v2.我应该能够推送一个docker镜像,它在运行注册表v2容器的主机服务器(coreos)上本地工作.但是,当我尝试推送到注册表时,在单独的机器(也是coreos,相同版本)上,它尝试推送到v1,给出此错误:
Error response from daemon: v1 ping attempt failed with error: Get
https://172.22.22.11:5000/v1/_ping: dial tcp 172.22.22.11:5000: i/o timeout.
If this private registry supports only HTTP or HTTPS with an unknown CA
certificate, please add `--insecure-registry 172.22.22.11: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/172.22.22.11:5000/ca.crt
Run Code Online (Sandbox Code Playgroud)
两台机器的docker可执行文件都是v1.6.2.为什么一个工作并推动v2但另一个是v1?
这是注册表的回购:https://github.com/docker/distribution
我目前正在尝试使用CoreOS和Kubernetes设置一个小型集群.首先,我正在学习本教程.我有三台运行在VirtualBox上的CoreOS机器,使用vagrant.我到达了教程的第二步,但卡住了.
我似乎能够使用启动kubelet systemctl start kubelet,但我似乎无法连接到API服务器.似乎它没有启动API服务器,但首先尝试连接到它.
当我进入时curl http://127.0.0.1:8080/version,我curl: (7) Failed to connect to 127.0.0.1 port 8080: Connection refused回来了.
Journalctl只是告诉我kubelet正在尝试连接到API服务器,并且由于无法访问API服务器,我无法使用kubectl来查看Pod发生了什么.我该如何解决这个问题?
编辑:
我手动执行了docker命令,得到了以下内容:
I1109 09:30:18.680796 1 plugins.go:69] No cloud provider specified.
I1109 09:30:18.826523 1 master.go:273] Node port range unspecified. Defaulting to 30000-32767.
E1109 09:30:18.847815 1 reflector.go:136] Failed to list *api.ResourceQuota: Get http://127.0.0.1:8080/api/v1/resourcequotas: dial tcp 127.0.0.1:8080: connection refused
E1109 09:30:18.848277 1 reflector.go:136] Failed to list *api.Secret: Get http://127.0.0.1:8080/api/v1/secrets?fieldSelector=type%3Dkubernetes.io%2Fservice-account-token: dial tcp 127.0.0.1:8080: connection refused
E1109 09:30:18.848581 …Run Code Online (Sandbox Code Playgroud) 从CoreOS VM运行以下命令时,它按预期工作:
docker run --rm -v $PWD:/data composer init
Run Code Online (Sandbox Code Playgroud)
它将composer.json使用指定的Docker卷映射初始化当前工作目录中的文件.Docker容器基本上安装了PHP工具组合器,并将/data在容器的文件夹中运行该工具.通过使用映射,它实际上将其应用于主机上的文件.
但是,当尝试使用Docker Toolbox在Windows上运行此命令时,我收到以下错误.
$ docker run --rm -v $PWD:/data composer --help
invalid value "C:\\Users\\Marco;C:\\Program Files\\Git\\data" for flag -v: bad mount mode specified : \Program Files\Git\data
See 'C:\ProgramData\Chocolatey\lib\docker\bin\docker.exe run --help'.
Run Code Online (Sandbox Code Playgroud)
我在这里注意到的是,虽然我在Git Bash执行命令时它仍使用Windows路径.那么我试着跟随(用引号括起来):
$ "docker run --rm -v $PWD:/data composer --help"
bash: docker run --rm -v /c/Users/Marco:/data composer --help: No such file or directory
Run Code Online (Sandbox Code Playgroud)
现在它无法找到该目录.
我也试过没有$ PWD变量,但这没有什么区别.
如何在Windows上进行此操作?
我跑Container Linux by CoreOS 1618.0.0 (Ladybug).
同 rkt Version: 1.29.0
我创建了一个systemd服务文件来运行docker nagios图像:
[Unit]
Description=Nagios
Requires=network-online.target local-fs.target
After=network-online.target local-fs.target
[Install]
WantedBy=multi-user.target
[Service]
Slice=machine.slice
ExecStart=/usr/bin/rkt run --port=80-tcp:8018 --insecure-options=image --volume volume-var-log-apache2,kind=host,source=/mnt/storage/nagios/apache2-log --volume volume-usr-share-snmp-mibs,kind=host,source=/mnt/storage/nagios/snmp-mibs --volume volume-opt-nagiosgraph-etc,kind=host,source=/mnt/storage/nagios/nagiosgraph/etc --volume volume-opt-nagiosgraph-var,kind=host,source=/mnt/storage/nagios/nagiosgraph/var --volume volume-opt-nagios-libexec,kind=host,source=/mnt/storage/nagios/nagios/libexec --volume volume-opt-nagios-var,kind=host,source=/mnt/storage/nagios/etc,readOnly=false --volume volume-opt-nagios-etc,kind=host,source=/mnt/storage/nagios/var,readOnly=false --volume volume-opt-custom-nagios-plugins,kind=host,source=/mnt/storage/nagios/custom-plugins docker://jasonrivers/nagios:latest
KillMode=mixed
Restart=always
RestartSec=0
ExecStopPost=/usr/bin/rkt gc --mark-only
Run Code Online (Sandbox Code Playgroud)
现在问题是安装的parittions没有填充相关的图像文件.
通常我所做的是提取图像本身并手动复制相关文件.
问题是......还有另一个吗?
希望我错过了一个rkt参数,该参数用安装位置中docker镜像中的文件填充相关的已安装目录
有任何想法吗 ?