一、NameSpace

对资源进行隔离,比如开发环境和测试环境等。




kubernetes 获取命名空间下的资源 k8s查看所有命名空间_nginx


1、命令

# 查看所有命名空间的资源
kubectl get pod -A
# 查看单独某个命名空间下的资源
kubectl get pod -n <空间名称>
# 查看所有命名空间
kubectl get ns
# 创建命名空间
kubectl create ns <空间名称>
# 上次命名空间
kubectl delete ns <空间名称>

2、yaml创建

goods.yaml

apiVersion: v1
kind: Namespace
metadata :
  name: goods

创建kubectl apply -f goods.yaml

删除kubectl delete -f nginx.yaml

二、Pod

运行中的一组容器,所以一个pod里有一个或者多个容器。

1、命令

# 创建pod
kubectl run pod名称 --image=镜像名称
kubectl run mynginx --image=nginx
# 查看pod细节
kubectl describe pod mynginx
# 删除pod
kubectl delete pod pod名称 -n 命名空间名称(默认是default,不用谢-n)
kubectl delete pod mynginx -n default

2、yaml

apiVersion: v1
kind: Pod 
metadata :
  labels:
    run: mynginx
  name: mynginx
  # namespace: default
spec:
  containers :
  - image: nginx
    name: mynginx

3、平台界面操作


kubernetes 获取命名空间下的资源 k8s查看所有命名空间_kubernetes_02


4、查看日志

kubectl logs -f pod名称
kubectl logs mynginx

5、查看pod的容器访问地址

k8s会给每个pod分配ip,具体网络端是在初始化master的时候配置的(pod-network-cidr)

kubectl get pod -owide


kubernetes 获取命名空间下的资源 k8s查看所有命名空间_Powered by 金山文档_03


目前之能curl访问,因为没对外暴露地址,浏览器还不能访问成功。


kubernetes 获取命名空间下的资源 k8s查看所有命名空间_linux_04


6、登录pod

kubectl exec -it mynginx /bin/bash


kubernetes 获取命名空间下的资源 k8s查看所有命名空间_kubernetes_05


三、Deployment


kubernetes 获取命名空间下的资源 k8s查看所有命名空间_linux_06


控制Pod,使Pod拥有多副本,自愈,扩缩容等能力

1、创建删除部署

# 创建部署
kubectl create deployment 部署名称 --image=镜像name
# 获取所有部署
kubectl get deployment
# 删除部署
kubectl delete deployment 部署名称

2、自愈能力

# 用这种办法创建的pod,如果删了pod,就删了
kubectl run pod名称 --image=镜像名称
# 用这种办法创建的pod,如果删了,会自动再创建一个pod
kubectl create deployment nginx0112 --image=nginx

这就是这两者创建pod的区别。所以以后我们再部署pod的时候都是以这种方式部署,防止pod意外宕机,造成损失。

3、多副本

把应用部署多份pod

kubectl create deployment 部署名称 --image=镜像name --replicas=<部署的份数>

1)界面操作


kubernetes 获取命名空间下的资源 k8s查看所有命名空间_kubernetes_07


kubernetes 获取命名空间下的资源 k8s查看所有命名空间_docker_08


2)yaml创建

这可以百度下

4、扩缩容能力

kubectl scale deployment/<部署名> --replicas=<扩缩容数量> [-n <命名空间>]
# 扩缩容数量如果你写的比当前 pod数量多就是扩容,比当前pod数量少就是缩容。


kubernetes 获取命名空间下的资源 k8s查看所有命名空间_docker_09


1)yaml

kubectl edit deploy <应用名称>
# 这个命令会直接进入编写yaml的操作,你只要把参数该成你想扩缩容的数量即可完成


kubernetes 获取命名空间下的资源 k8s查看所有命名空间_linux_10


2)界面操作


kubernetes 获取命名空间下的资源 k8s查看所有命名空间_docker_11


5、滚动更新

1)滚动更新

流程:拉一份新镜像,启动新镜像,如果启动成功就会把旧镜像下掉。启动一个pod下掉一个。

kubectl set image deployment/<应用名称> <镜像名称>=版本号 --record
kubectl set image deployment/mynginx nginx=1.16.1 --record


kubernetes 获取命名空间下的资源 k8s查看所有命名空间_nginx_12


2)滚动回退

# 查看应用的版本信息
kubectl rollout history deployment/<应用名称>
kubectl rollout history deployment/mynginx
#回退到指定版本
kubectl rollout undo deployment/<应用名> --to-revision=<版本号>
kubectl rollout undo deployment/mynginx --to-revision=1
#回退到上个版本
kubectl rollout undo deployment/mynginx


kubernetes 获取命名空间下的资源 k8s查看所有命名空间_nginx_13