1. 得到kube 的名称空间namespace, 名称空间是用来隔离资源的
kubectl get namespace
or
kubectl get ns
2. 得到pods (应用程序)的列表
kubectl get pods -A
不带-A是得到默认的应用
3. 得到指定名称空间下的应用
kubectl get pod -n 名称空间名
打印一个更完善的信息 -owide
kubectl get pod -owide
4. 创建和删除名称空间, 删除名称空间会删除名称空间下所有的应用
kubectl create ns 名称空间名
kubectl delete ns 名称空间名
删除命名空间还可以从yaml删,比如删除用配置文件hello.yaml 创建的命名空间
kubectl delete -f hello.yaml
5. 用yaml创建名称空间, 比如 hello.yaml
apiVersiion: v1
kind: Naqmespace
metadata:
name: hello
以下两行是固定的写法
apiVersiion: v1
kind: Naqmespace
最后执行命令
kubectl apply -f hello.yaml
6. 创建pot with 容器
kubectl run mynginx --image=nginx
查看pot运行情况
kubectl describe pod mynginx
查看pot运行在哪个node下,需要运行以下命令,需要在所有的node下运行一遍
docker ps|grep mynginx
删除pot
kubectl detete pod Podname
通过yaml文件创建pot with container, pod.yaml
apiVersion: v1
kind: Pod
matadata:
label:
run: mynginx
name: mynginx
namespace: default // 可有可无,如果在dashboard里操作,如果没有选择pod就需要这个
spec:
containers:
- image: nginx // 镜像名
name: mynginx // 容器名
kubectl apply -f pod.yaml
删除配置文件生成的pod
kubectl delete -f pod.yaml
查看log运行日记
kubectl logs pod名字
kubectl logs mynginx
每个pod -- k8是都会分配一个ip
比如用 kubectl get pod -owide 后会看到pod的IP地址
然后使用 curl 192.168.169.136就能看到pod的内容
集群中的任意一个机器以及任意的应用都能通过pod分配的ip来访问这个pod
进入到pod里的容器去修改
kubectl exec -it mynginx -- /bin/bash
exit // 结束修改
7. 一个pod添加多个容器
apiVersion: v1
kind: Pod
matadata:
label:
run: myapp
name: myapp
namespace: default // 可有可无,如果在dashboard里操作,如果没有选择pod就需要这个
spec:
containers:
- image: nginx // 镜像名
name: mynginx // 容器名
- image: tomcat: 8.5.68
name: tomcat
kubectl apply -f multicontainer-pod.yaml
#监视kube
watch -n l kubectl get pod
8. Deployment
kutectl create deploy mytomcat --image=tomcat:8.5.68
kutectl create deploy mytomcat --image=nginx --replicas=3 // replicas 副本, 多副本模式
删除
kubectl delete deploy mytomcat
扩容和缩容
kubectl scale deploy/mynginx --replicas=5 // 如果之前是replicas=2, 那么现在就是5个了,如果设置成 replicas=1, 那么就是缩容。
或者修改yaml
kubectl edit deploy mytomcat
滚动更新
// nginx 是current 镜像image
// nginx:1.16.1 新的要替换的镜像
// --record 记录整个过程
kubectl set image deploy/my-dep nginx=nginx:1.16.1 --record
deploy 版本回滚 rollout
1)先查看历史记录
kubectl rollout history deploy/my-dep
2) 查看某个历史详情
kubectl rollout undo deploy/my-dep -to-revision=2
3)回滚到上一次
kubectl rollout undo deploy/my-dep
4)或者回滚到指定版本
kubectl rollout undo deploy/my-dep --to-revision=2
No comments:
Post a Comment