k8s-命名空间

Kubernetes 命名空间简单地为对象名称提供了一个作用域。 此时我们并不会将所有资源都放在 同一个命名空间中,而是将它们组织到多个命名空间中,这样可以允许我们多次使 用相同的资源名称(跨不同的命名空间〉。

1 查看命名空间

kubectl get ns
NAME              STATUS   AGE
default           Active   5d19h
kube-node-lease   Active   5d19h
kube-public       Active   5d19h
kube-system       Active   5d19h

创建节点,默认是放入default命名空间

get po --namespace default
NAME          READY   STATUS    RESTARTS   AGE
kubia-cfc9x   1/1     Running   3          5d16h
kubia-npd7q   1/1     Running   2          4d8h
kubia-pxdfb   1/1     Running   0          3d17h

ps:也可以使用 -n来代替 --namespace

2.创建命名空间

方式1

apiVers工on: vl  
kind: Namespace # 这表示我们正在定义一 个命名空间
  metadata: 
  name: custom-namespace 

方式2:

kubectl create -f custom-namespace.yaml 


 kubectl create namespace custom-namespace 

3.加入资源到命名空间

方式1:
如果想要在刚创建的命名空间中创建资源,可以选择在 metadata 宇段中添加 一个 namespace:custom-namespace 属性,
方式2:
也可以在使用 kubectl create 命令创建资源时指定命名空间 :

$ kubectl create -f kubia-manual.yaml -n custom-namespace
 pod "kubia-manual" created 

示例:
yaml文件

apiVersion: v1  
kind: Pod
metadata:
  name: nginx-p
  namespace: yyf
spec:
  containers:
  - image: nginx
    name: nginx-c
    ports:
    - containerPort: 80
      protocol: TCP

创建pod

kubectl create -f  kube-nginx-yaml

查看

kubectl get pods -n ypf
NAME      READY   STATUS    RESTARTS   AGE
nginx-p   1/1     Running   0          71s

4.改变命名空间

nginx-rc-yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: nginx
  namespace: ypf
spec:
  replicas: 1
  selector:
      name: nginx
  template:
    metadata:
      labels:
        name: nginx
    spec:
      containers:
        - name: nginx
          image: nginx
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 80

nginx-svc-yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx-service-nodeport
  namespace: ypf
spec:
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP
  type: NodePort
  selector:
    name: nginx

kubectl create -f nginx-rc-yaml
kubectl create -f nginx-svc-yaml

kubectl get pod -n ypf #查看命名空间对应pod
NAME          READY   STATUS    RESTARTS   AGE
nginx-ldxf5   1/1     Running   0          55m
 kubectl get svc -n ypf
NAME                       TYPE       CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
nginx-service-nodeport  NodePort   10.1.101.93           80:32003/TCP   31m

访问:
 curl 10.1.101.93



Welcome to nginx!
....

需要改变rc控制器和sercive的命名空间,服务才能生效,因为命名空间的隔离机制

 删除命名空间
kubectl delete ns [命名空间名称]

你可能感兴趣的:(k8s)