k8s安装部署4 - Namespace & Pod
k8s学习笔记
·
NameSpace
名称空间:用来对集群资源进行隔离划分。默认只隔离资源,不隔离网络
#查看名称空间
kubectl get ns
#查看默认空间下的应用
kubectl get pods
#查看所有的应用
kubectl get pods -A
#查看指定空间下的应用
kubectl get pods -n kubernetes-dashboard
#创建名称空间
kubectl create ns hello
#名称空间里面的资源会一起删除
kubectl delete ns hello
使用文件创建名称空间 vi hello.yaml
apiVersion: v1
kind: Namespace
metadata:
name: hello
kubectl apply -f hello.yaml
#删除
kubectl delete -f hello.yaml
Pod
Pod:运行中的一组容器,Pod是kubernetes中应用的最小单位
# 运行一个pod
kubectl run mynginx --image=nginx
# 查看default名称空间的Pod
kubectl get pod
# 描述
kubectl describe pod mynginx
#查看应用在那台服务器上运行(在子节点上执行)
docker ps | grep mynginx
# 每个Pod - k8s都会分配一个ip(kubectl命令只在主节点上执行)
kubectl get pod -owide
curl http://pod对应的IP
#进入到容器内部
kubectl exec -it mynginx -- /bin/bash
#在部分容器只能使用/bin/sh
kubectl exec -it mynginx -- /bin/sh
ls /usr/share/nginx/html/
#可以修改容器中的内容
exit
#查看Pod中的日志(只有Pod有日志,logs后面直接是Pod名称)
kubectl logs mynginx
# 删除
kubectl delete pod mynginx
使用文件创建pod vi pod.yaml
apiVersion: v1
kind: Pod
metadata:
labels:
run: mynginx
# pod名称
name: mynginx
# namespace: default
spec:
containers:
- image: nginx
# 容器名称
name: mynginx
kubectl apply -f pod.yaml
kubectl get pod -owide
kubectl get pod -oyaml
#使用ip可以访问不同的容器
curl ip:容器端口
#在Pod内部,可以使用127.0.0.1:容器端口,相互之间进行访问
#如果一个Pod内有多个容器,且多个容器有相同的端口,则启动时会因端口占用冲突而失败
kubectl delete -f pod.yaml
一个Pod里面运行多容器
vi multicontainer-pod.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 multicontainer-pod.yaml
#每隔1秒查询一次pod
watch -n 1 kubectl get pods -A
#等pod启动好之后,使用dashboard可以查看到pod,在右侧点击日志,可以选择nginx/tomcat查看日志,或者是点执行,进入到对应容器里面
#找到容器对应的子节点ip
kubectl get pods -owide
#在子节点上查看容器id(可以查到k8s_tomcat_myapp_default/k8s_nginx_myapp_default对应的容器)
docker ps | grep myapp
#使用-c 容器名称 进入指定的容器(如果没有传参数-c,默认进入第一个容器)
kubectl exec -it myapp -c tomcat -- /bin/bash
pwd && ls
exit
kubectl exec -it myapp -c nginx -- /bin/bash
ls /usr/share/nginx/html/
exit
#查看pod中的日志(logs后面跟pod名称。如果pod中有多个容器,则需要指定容器的名称)
kubectl logs myapp -c nginx
kubectl logs myapp -c tomcat
#删除多个pod
kubectl delete pod Pod名字 pod1 pod2
kubectl delete -f multicontainer-pod.yaml
更多推荐
已为社区贡献16条内容
所有评论(0)