此情况针对于pod,service创建时对于namespace指定操作


第一步  创建一个新的namespace,来归档知识点

kubectl create namespace nginx-pro


第二步  创建pod时,将namespace写入metadata下:

cat pod-nginx-pro.yaml

apiVersion: apps/v1

kind: Deployment

metadata:

  labels:

    app: nginx-pro

  name: nginx-pro

  namespace: nginx-pro

spec:

  replicas: 1

  selector:

    matchLabels:

      app: nginx-pro

  strategy: {}

  template:

    metadata:

      labels:

        app: nginx-pro

    spec:

      containers:

      - image: nginx

        name: nginx

或命令创建

kubectl create -n nginx-pro deployment nginx-pro --image=nginx



第三步  端口暴露至公网

cat service-nginx-pro.yaml

apiVersion: v1

kind: Service

metadata:

  creationTimestamp: null

  labels:

    app: nginx-pro

  name: nginx-pro

spec:

  ports:

  - port: 28888

    protocol: TCP

    targetPort: 80

  selector:

    app: nginx-pro

  type: LoadBalancer

status:

  loadBalancer: {}

或命令创建

kubectl create -n nginx-pro deployment nginx-pro --port 28888 --target-port=80 --type=LoadBalancer

PS:--port                   公网访问端口

        --target-port        pod端口

        这里用的是阿里的Kubernetes,故而type为LoadBalancer


第四步 pod指定namespace扩缩容

pod 扩缩容指定namespace操作

#扩容

kubectl scale -n kube-node-lease deployment nginx-deployment-basic --replicas=10

#缩容

kubectl scale -n kube-node-lease deployment nginx-deployment-basic --replicas=5