kubernetes创建Pod

Kubernetes基础之Pod的创建

正如前文基础概念所述,pod是Kubernetes最小的工作单元,其包含了需要共同协作的所有容器的最小单元集合。一个pod一般由一个以上的运行程序的image的容器组合而成,默认image下载路径为docker hub也可以本地进行自我配置。所有在pod中的容器共享pod的ip地址空间,即相同pod内的容器所有的ip地址相同而port不相同。pod的运行由Kubernetes中的master节点来统一调配,默认会分配到空闲的worker节点上,也可以通过label来指定到特定的worker节点上运行。

创建pod可以通过resources比如Deployment, StatefulSet以及DaemonSet来管理或者以单一yml来定义pod内容。

详细pod官方说明具体可查看 https://kubernetes.io/docs/concepts/workloads/pods

  • 通过yml来定义pod内容
### kubectl create namespace web
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  namespace: web
  labels:
    app: nginx
spec:
  containers:
    - name: nginx
      image: nginx
      command: ["nginx"]
      args:
        - -g
        - daemon off;
        - -q
      ports:
        - containerPort: 80
  • 通过deployment来创建pod

使用命令行来创建Deployment

kubectl run nginx-deployment --image=nginx --replicas=2

使用yml来配置Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  namespace: web
  labels:
    deployment: nginx-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      deployment: nginx
  template:
    metadata:
      labels:
        deployment: nginx
    spec:
      containers:
        - name: nginx
          image: nginx
          command: ["nginx"]
          args: ["-g", "daemon off;", "-q"]
          ports:
            - containerPort: 80

以上为快速创建pod的方法

上一篇:kubernetes 核心技术-controller


下一篇:Kubernetes升级coredns1.8.3