minikube安装、K8S集群、应用编排命令小结

minikube安装

(首先电脑版本需要支持!)

# 启动集群
minikube start
# 查看节点。kubectl 是一个用来跟 K8S 集群进行交互的命令行工具
kubectl get node
# 停止集群
minikube stop
# 清空集群
minikube delete --all
# 安装集群可视化 Web UI 控制台
minikube dashboard

部署应用到集群中

部署一个 nodejs web 应用,源码地址:Github
相关命令:

# 切换命名空间
kubens kube-system   # kubens 需要手动安装
# 创建命名空间
kubectl create namespace yuming  # namespace缩写成ns也可以
# 获取命名空间
kubectl get ns
# 删除命名空间
kubectl delete namespaces test-ns


# 创建pod 
kubectl create -f https://k8s.io/examples/pods/pod-nginx.yaml --record
# 部署应用deployment, 带record参数时,创建这些版本时执行的 kubectl 命令,都会被记录下来
kubectl apply -f app.yaml --record


# 查看 deployment
kubectl get deployment
# 查看deployment详情,含扩缩容、滚动更新等事件
kubectl describe deployment nginx-deployment
# 查看 ReplicaSet
kubectl get rs


# 查看 pod
kubectl get pod -o wide
# 查看 pod 详情,
kubectl describe pod pod-name
# 查看节点
kubectl get nodes
# 查看节点详情
kubectl describe nodes
# 查看pvc
kubectl get pvc -l app=nginx  # -l 是过滤标签
# 查看详细job
kubectl describe jobs/pi


# 查看 pod 的 log
kubectl logs pod-name
# 进入 Pod 容器终端, -c container-name 可以指定进入哪个容器(因为一个pod中可以有一个或多个容器,注意副本数指的是pod的数量,不是pod中容器数量)。
kubectl exec -it pod-name -- bash


# 伸缩扩展副本(副本就是相同的pod的数量)
kubectl scale deployment test-k8s --replicas=5
# 把集群内端口映射到节点(8090是外部节点端口,8080是内部容器端口)
kubectl port-forward pod-name 8090:8080


# 查看DaemonSet、StatefulSet对象的历史版本,本质也是一个对象
kubectl get controllerrevision
# 查看某个历史版本的详情
kubectl describe controllerrevision fluentd-elasticsearch-64dc6799c9


# 查看历史版本(每次修改pod文件都会生成一个版本,扩缩容不算,每个history版本都是一个Replica)
kubectl rollout history deployment test-k8s
# 回到上个版本
kubectl rollout undo deployment test-k8s
# 回到指定版本
kubectl rollout undo deployment test-k8s --to-revision=2
# 查看rollout操作状态
kubectl rollout status deployment/nginx-deployment


# 暂停;暂停期间对deployment的修改不会创建新的 ReplicaSet
kubectl rollout pause deployment/nginx-deployment
# 恢复;暂停到恢复期间,对 Deployment 进行的所有修改,最后只会触发一次“滚动更新”,生成一个ReplicaSet
kubectl rollout resume deployment/nginx-deployment


# 更新了yaml后,更新应用
kubectl replace -f nginx.yaml
# 修改deployment对象(修改在远程的ETCD里的API 对象,本质是把 API 对象的内容下载到了本地文件,修改完成后再提交上去。)
kubectl edit deployment/nginx-deployment
# 直接修改 nginx-deployment 所使用的镜像。会生成一个history版本
kubectl set image deployment/nginx-deployment nginx=nginx:1.91


# 删除部署
kubectl delete deployment test-k8s

更多命令:

# 查看全部
kubectl get all
# 重新部署
kubectl rollout restart deployment test-k8s
# 命令修改镜像,--record 表示把这个命令记录到操作历史中
kubectl set image deployment test-k8s test-k8s=ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v2-with-error --record

# 暂停运行,暂停后,对 deployment 的修改不会立刻生效,恢复后才应用设置
kubectl rollout pause deployment test-k8s
# 恢复
kubectl rollout resume deployment test-k8s

# 把已经部署的资源输出到yaml文件
kubectl get deployment test-k8s -o yaml >> app2.yaml
# 删除全部资源
kubectl delete all --all

命令共性小结:

create -f  # 创建pod、命名空间
apply -f   # 部署应用deployment、service
get node/deployment/service/pod/  # 查看节点、应用、服务、pod
describe  # 查看详情
scale ... --replicas=5 # 伸缩扩展副本
rollout # 回退版本
delete # 删除
logs # 查看日志
exec -it ... --bash   # 进入pod中某个容器

kubens 使用

  • k8s每次查看指定命名空间的资源都需要加 -n 命名空间 来指定命名空间;
  • 我们可以通过开源项目kubens来切换当前命名空间,切换命名空间后,就无需每次都使用 -n 命令来指定命名空间了
# 安装
yum install -y git ##安装git
git clone https://github.com/ahmetb/kubectx.git ##clone项目
cp kubectx/kube* /usr/local/bin/ ##把相关文件放到可执行目录里

# 使用
kubens  ##列出当前命名空间 (当前所在的命名空间会用黑底标出)
kubens kube-system ##切换命名空间为kube-system
kubectl get pods ##切换命名空间后,无需指定命名空间,即可查看切换后的命名空间资源
kubens - #在最近两个命名空间来还切换 类似 cd -

额外参数

  • –record 记录录下你每次操作所执行的命令,以方便后面查看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值