$dockerrun-d--restart=always-eDOMAIN=cluster--namenginx-app-p80:80nginxa9ec34d9878748d2f33dc20cb25c714ff21da8d40558b45bfaec9955859075d0$dockerpsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a9ec34d98787 nginx "nginx -g 'daemon of 2 seconds ago Up 2 seconds 0.0.0.0:80->80/tcp, 443/tcp nginx-app
使用 kubectl 命令:
# start the pod running nginx$kubectlrun--image=nginxnginx-app--port=80--env="DOMAIN=cluster"deployment"nginx-app"created
在大于等于 1.2 版本 Kubernetes 集群中,使用kubectl run 命令将创建一个名为 "nginx-app" 的 Deployment。如果您运行的是老版本,将会创建一个 replication controller。 如果您想沿用旧的行为,使用 --generation=run/v1 参数,这样就会创建 replication controller。查看 kubectl run 获取更多详细信息。
# expose a port through with a service$kubectlexposedeploymentnginx-app--port=80--name=nginx-httpservice"nginx-http"exposed
$dockerpsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a9ec34d98787 nginx "nginx -g 'daemon of About an hour ago Up About an hour 0.0.0.0:80->80/tcp, 443/tcp nginx-app
$dockerpsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a9ec34d98787 nginx "nginx -g 'daemon of 8 minutes ago Up 8 minutes 0.0.0.0:80->80/tcp, 443/tcp nginx-app
$dockerattacha9ec34d98787...
$dockerpsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a9ec34d98787 nginx "nginx -g 'daemon of 8 minutes ago Up 8 minutes 0.0.0.0:80->80/tcp, 443/tcp nginx-app
$dockerexeca9ec34d98787cat/etc/hostnamea9ec34d98787
现在是时候提一下 pod 和容器之间的细微差别了;默认情况下如果 pod 中的进程退出 pod 也不会终止,相反它将会重启该进程。这类似于 docker run 时的 --restart=always 选项, 这是主要差别。在 docker 中,进程的每个调用的输出都是被连接起来的,但是对于 kubernetes,每个调用都是分开的。要查看以前在 kubernetes 中执行的输出,请执行以下操作:
$dockerpsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a9ec34d98787 nginx "nginx -g 'daemon of 22 hours ago Up 22 hours 0.0.0.0:80->80/tcp, 443/tcp nginx-app
$dockerstopa9ec34d98787a9ec34d98787$dockerrma9ec34d98787a9ec34d98787