1:NamesSpace:名称空间用来隔离资源不隔离网络
常用命令:
# 创建名称空间
kubectl create ns hello
# 删除名称空间
kubectl delete ns hello
# 查看集群命名空间
kubectl get ns
#通过配置文件创建: vim hello.yaml 添加如下内容,然后运行 kubectl apply -f hello.yaml
apiVersion: v1
kind: Namespace
metadata:
name: hello
# 配置文件删除命名空间: kubectl delete -f hello.yaml
2:Pod: 运行中的一组容器,Pod是kubernetes中应用的最小单位
常用命令:
# 创建一个pod名字为mynginx,名称空间默认为default
kubectl run mynginx --image=nginx(镜像名字)
# 查看所有Pod
kubectl get pod -A
# 查看default名称空间的Pod
kubectl get pod
# 监控default名称空间的Pod
kubectl get pod -w
# 查看指定名称空间的Pod
kubectl get pod -n 名称空间
# 描述
kubectl describe pod 你自己的Pod名字
# 删除
kubectl delete pod Pod名字 -n 名称空间
# 查看Pod的运行日志
kubectl logs Pod名字
# 集群中的任意一个机器以及任意的应用都能通过Pod分配的ip来访问这个Pod
# 查看pod更多信息,可以查看pod的ip
kubectl get pod -owide
# 使用Pod的ip+pod里面运行容器的端口(默认80)
curl 192.168.169.136:端口号
# 同一个pod里面不同容器访问(共享网络空间,存储,不同容器)
curl 127.0.0.1:容器端口
# 进入pod里面控制台
kubectl exec -it mynginx(容器名) -- /bin/bash
配置文件创建
apiVersion: v1
kind: Pod
metadata:
labels:
run: mynginx
name: mynginx # pod名字
# namespace: default
spec:
containers:
- image: nginx #镜像
name: mynginx #容器名
#一个pod里面多个容器
apiVersion: v1
kind: Pod
metadata:
labels:
run: myapp
name: myapp
spec:
containers:
- image: nginx
name: nginx
- image: tomcat:8.5.68
name: tomcat
运行: kubectl describe pod mynginx 查看名字为mynginx的pod信息
Successfully assigned default/mynginx to k8s-node2 : mynginx位置在k8s-node2
3:Deployment: 控制Pod,使Pod拥有多副本,自愈,扩缩容等能力
常用命令
kubectl run mynginx --image=nginx
# 该命令创建的pod自愈能力差,pod坏了会停止
kubectl create deployment mytomcat --image=tomcat:8.5.68
# 该命令创建的pod自愈能力强,pod坏了会重启一个新的
# 真正删除,这样才会删除pod
kubectl delete deploy mytomcat
# 查询
kubectl get deploy
# 多副本部署,同时部署多台机器
kubectl create deployment my-dep --image=nginx --replicas=3
# 扩缩容
kubectl scale deployment/my-dep --replicas=5
#修改 replicas
kubectl edit deployment my-dep
# 更新
kubectl set image deployment/my-dep nginx=nginx:1.16.1 --record
kubectl rollout status deployment/my-dep
## 版本回退
#历史记录
kubectl rollout history deployment/my-dep
#查看某个历史详情
kubectl rollout history deployment/my-dep --revision=2
#回滚(回到上次)
kubectl rollout undo deployment/my-dep
#回滚(回到指定版本)
kubectl rollout undo deployment/my-dep --to-revision=2
配置文件创建
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: my-dep
name: my-dep
spec:
replicas: 3
selector:
matchLabels:
app: my-dep
template:
metadata:
labels:
app: my-dep
spec:
containers:
- image: nginx
name: nginx