舱内Kubernetes Docker工艺

舱内Kubernetes Docker工艺,docker,kubernetes,Docker,Kubernetes,我有一个带有CMD的Docker映像来运行Java应用程序 此应用程序正在部署到Kubernetes的容器中。因为,我将它部署为Docker映像,所以我希望它作为Docker进程运行。因此,我刚刚登录到pods并尝试“docker ps” 但是,我很惊讶它是作为Java进程而不是docker进程运行的。我可以通过“ps-ef”查看流程 我很困惑,它是如何在内部工作的?正如其他人所说,Kubernetes在内部使用docker部署容器。详细地解释了具有4个节点、1个主和3个奴隶的簇。 $ kube

我有一个带有CMD的Docker映像来运行Java应用程序

此应用程序正在部署到Kubernetes的容器中。因为,我将它部署为Docker映像,所以我希望它作为Docker进程运行。因此,我刚刚登录到pods并尝试“docker ps

但是,我很惊讶它是作为Java进程而不是docker进程运行的。我可以通过“ps-ef”查看流程


我很困惑,它是如何在内部工作的?

正如其他人所说,Kubernetes在内部使用docker部署容器。详细地解释了具有4个节点、1个主和3个奴隶的簇。
$ kubectl get nodes
NAME                           STATUS    ROLES     AGE       VERSION
******.mylabserver.com   Ready     master    13d       v1.10.5
******.mylabserver.com   Ready     <none>    13d       v1.10.5
******.mylabserver.com   Ready     <none>    13d       v1.10.5
******.mylabserver.com   Ready     <none>    13d       v1.10.5
您可以获得pod的状态,如下所示:

$ kubectl get pods -o wide
NAME      READY     STATUS    RESTARTS   AGE       IP           NODE
alpine    1/1       Running   0          21s       10.244.3.4   ******.mylabserver.com
Kube调度程序将在一个可用节点上调度pod

现在pod被部署到一个服务器上,您可以登录到该特定服务器并找到您要查找的信息

root@******:/home/user# docker ps
CONTAINER ID        IMAGE                                                                            COMMAND                  CREATED              STATUS         
     PORTS               NAMES
6486de4410ad        alpine@sha256:e1871801d30885a610511c867de0d6baca7ed4e6a2573d506bbec7fd3b03873f   "sleep 3600"             58 seconds ago       Up 57 seconds  
                         k8s_alpine_alpine_default_2e2b3016-79c8-11e8-aaab-
在该服务器中运行
docker exec
命令,查看内部正在运行的进程

root@******:/home/user# docker exec -it 6486de4410ad /bin/sh
/ # ps -eaf
PID   USER     TIME   COMMAND
    1 root       0:00 sleep 3600
    7 root       0:00 /bin/sh
   11 root       0:00 ps -eaf
/ # 
这可以为您提供有关吊舱的更多信息,以及如何使用吊舱/容器进行部署


希望这有帮助。

正如其他人所说,Kubernetes在内部使用docker部署容器。详细地解释了具有4个节点、1个主和3个奴隶的簇。
$ kubectl get nodes
NAME                           STATUS    ROLES     AGE       VERSION
******.mylabserver.com   Ready     master    13d       v1.10.5
******.mylabserver.com   Ready     <none>    13d       v1.10.5
******.mylabserver.com   Ready     <none>    13d       v1.10.5
******.mylabserver.com   Ready     <none>    13d       v1.10.5
您可以获得pod的状态,如下所示:

$ kubectl get pods -o wide
NAME      READY     STATUS    RESTARTS   AGE       IP           NODE
alpine    1/1       Running   0          21s       10.244.3.4   ******.mylabserver.com
Kube调度程序将在一个可用节点上调度pod

现在pod被部署到一个服务器上,您可以登录到该特定服务器并找到您要查找的信息

root@******:/home/user# docker ps
CONTAINER ID        IMAGE                                                                            COMMAND                  CREATED              STATUS         
     PORTS               NAMES
6486de4410ad        alpine@sha256:e1871801d30885a610511c867de0d6baca7ed4e6a2573d506bbec7fd3b03873f   "sleep 3600"             58 seconds ago       Up 57 seconds  
                         k8s_alpine_alpine_default_2e2b3016-79c8-11e8-aaab-
在该服务器中运行
docker exec
命令,查看内部正在运行的进程

root@******:/home/user# docker exec -it 6486de4410ad /bin/sh
/ # ps -eaf
PID   USER     TIME   COMMAND
    1 root       0:00 sleep 3600
    7 root       0:00 /bin/sh
   11 root       0:00 ps -eaf
/ # 
这可以为您提供有关吊舱的更多信息,以及如何使用吊舱/容器进行部署


希望这有帮助。

Kubernetes使用用户提供的yaml文件,部署一个pod(Kubernetes部署的较小单元),其中包含一个或多个容器

您可以使用kubectl工具访问pod内的容器。 例如,如果你的吊舱有一个容器,你可以在里面打开一个外壳:

kubectl exec -ti <pod-name> -n <pod-namespace> bash
kubectl exec-ti-n bash
通过这个shell,您可以运行
ps
命令,您的输出将是容器中运行的独立进程


如果您想观察Kubernetes在节点中部署的Docker容器,可以连接到该节点并运行
Docker ps
命令。

Kubernetes使用用户提供的yaml文件部署一个pod(Kubernetes部署的较小单元),其中包含一个或多个容器

您可以使用kubectl工具访问pod内的容器。 例如,如果你的吊舱有一个容器,你可以在里面打开一个外壳:

kubectl exec -ti <pod-name> -n <pod-namespace> bash
kubectl exec-ti-n bash
通过这个shell,您可以运行
ps
命令,您的输出将是容器中运行的独立进程


如果您想观察Kubernetes在节点中部署的Docker容器,您可以连接到该节点并运行
Docker ps
命令。

它如何在内部工作?我100%非常肯定这个问题已经被打死了。或者,换一种说法:你读过哪些文章没有充分回答你的问题?[另外,作为一个迂腐的注释:您将其标记为
kubernetes
,但您询问了
docker
]这是关于kubernetes内部的docker。这就是为什么标记为Kubernetes。从技术上讲,它低于Kubernetes或Docker,并且是关于在容器中运行应用程序的。Docker和Kubernetes只是从容器中的图像启动应用程序的方法。它在内部是如何工作的?我100%非常肯定这个问题已经被打死了。或者,换一种说法:你读过哪些文章没有充分回答你的问题?[另外,作为一个迂腐的注释:您将其标记为
kubernetes
,但您询问了
docker
]这是关于kubernetes内部的docker。这就是为什么标记为Kubernetes的原因。从技术上讲,它位于Kubernetes或Docker下面,它是关于在容器中运行应用程序的原因。Docker和Kubernetes只是从容器中的映像启动应用程序的方法。请注意,从K8S版本1.20开始,默认配置直接在containerd上运行POD(即,不在Docker上运行)。注意,从K8S版本1.20开始,默认配置直接在containerd上运行吊舱(即,不在Docker上运行)。