名称空间,用来对集群资源进行隔离划分。默认只隔离资源,不隔离网络。例如创建开发、测试、生产等命令空间,可以保证一个应用引用配置只能读取自己名称空间内的资源,但是可以访问不同名称空间的网络。所有资源在没指定的时候都是默认在default下。

可以使用命令行操作名称空间,也可以使用配置文件或者dashboard可视化平台操作。
#查看名称空间
kubectl get ns
#创建名称空间
kubectl create ns ***
#删除名称空间
kubectl delete ns ***
#创建配置文件
vi create_namespace.yaml
#复制内容
apiVersion: v1
kind: Namespace
metadata:
name: hello #名称空间名称
#应用文件
kubectl apply -f create_namespace.yaml
#删除
kubectl delete -f create_namespace.yaml
docker中运行的应用称为容器,在k8s中称为Pod。Pod是k8s中应用的最小单位,运行中的一组容器,虽然是封装了容器,但仍然是k8s中最小的基本单位。

#根据镜像创建pod并运行
kubectl run mynginx --image=nginx
#查看pod状态
kubectl describe pod mynginx
#查看default名称空间的Pod
kubectl get pod
#删除
kubectl delete pod ***
#删除指定命令空间的pod
kubectl delete pod -n 命名空间
apiVersion: v1
kind: Pod
metadata:
labels:
run: mynginx
name: mynginx
# namespace: default
spec:
containers:
- image: nginx
name: mynginx

#获取ip
kubectl get pod -owide
#使用Pod的ip+pod里面运行容器的端口
curl ip:端口
#进入容器
kubectl exec -it *** -- /bin/bash
#创建配置文件
vi testmorecontains.yaml
#复制文件内容
apiVersion: v1
kind: Pod
metadata:
labels:
run: myapp
name: myapp
spec:
containers:
- image: nginx
name: nginx
- image: tomcat:8.5.68
name: tomcat
#应用配置文件
kubectl apply -f testmorecontains.yaml

容器启动成功后,k8s会给该pod分配一个ip地址,nginx默认端口为80,Tomcat默认端口为8080,所以通过curl访问可以访问到。
#获取pod的ip
kubectl get pod -owide
#访问nginx
curl 10.244.1.5:80
#访问Tomcat[root@k8s-master ~]# curl 10.244.1.5:8080
<!doctype html><html lang="en"><head><title>HTTP Status 404 – Not Found</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}HTTP Status 404 – Not Found
Type Status Report
Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
Apache Tomcat/8.5.68