k8s—kubectl命令简单使用
Posted 丁CCCCC
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s—kubectl命令简单使用相关的知识,希望对你有一定的参考价值。
简单整理
一、kubectl 使用
1.1 查询命令
查看版本信息
kubectl version
查看资源对象简写
kubectl api-resources
查看集群信息
kubectl cluster-info
配置kubectl自动补全
source <(kubectl completion bash)
node节点查看日志
journalctl -u kubelet -f
查看master节点状态
kubectl get componentstatuses
kubectl get cs
1.2 命名空间操作
查看命令空间
用于允许不同命令空间的相同类型的资源的重名的
kubectl get namespaces
kubectl get ns
查看default命名空间的所有资源
kubectl get all -n default
不加-n 表示默认查的default
创建命名空间cc11
kubectl create ns cc11
kubectl get ns
删除命名空间cc11
kubectl delete namespaces cc11
在命名空间kube-public创建pod
kubectl create deployment nginx-test1 --image=nginx -n kube-public
kubectl get pod -n kube-public
查看这个资源的详细信息
kubectl describe deployments nginx -n kube-public
登录容器
#kubectl可以跨主机登录
kubectl exec -it replicaset.apps/nginx-test1-55f688dd9c bash -n kube-public
删除容器
由于创建是用deployment控制器,及时普通删除也会重新被拉起来
#普通删除
kubectl delete pod 容器名称 -n kube-public
#强制删除
kubectl delete pod 容器名称 -n 命名空间 --force --grace-period=0
//grace-period表示过渡存活期,默认30s,删除前会运行pod慢慢终止进程,优雅退出,这里设置0表示立即终止
扩缩容
#扩容至两个
kubectl scale deployment nginx-test1 --replicas=2 -n kube-public
#缩容至一个
kubectl scale deployment nginx-test1 --replicas=1 -n kube-public
删除副本控制器
kubectl delete deployment/nginx-test1 -n kube-public
二、项目的生命周期
2.1 创建
kubectl run
创建 kubectl run 命令
kubectl run nginx --image=nginx:1.14 --port=80 --replicas=3
kubectl get pods
2.2 发布
kubectl expose
创建service,通过service的80端口转发到容器的80端口上,service的名称为nginx-service,类型为nodeport
kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort
service类型
- ClusterIP:提供一个集群内部的虚拟IP以供Pod访问(service默认类型)
- NodePort:在每个 Node 上打开一个端口以供外部访问,Kubernetes 将会在每个 Node 上打开一个端口并且每个 Node 的端口都是一样的, 通过 NodeIp: NodePort 的方式 Kubernetes 集群外部的程序可以访问 Service
- 注:每个端口只能是一种服务,端口范围只能是30000-32767
- LoadBalancer:通过外部的负载均衡器来访问,通常在云平台部署 LoadBalancer 还需要额外的费用
查看pod网络详细信息和service的端口
kubectl get pods,svc -o wide
#访问
curl 192.168.253.11:30085
2.3 更新
kubectl set
查看当前nginx的版本号
curl -I http://192.168.253.11:30085
HTTP/1.1 200 OK
Server: nginx/1.14.2
Date: Wed, 18 Aug 2021 08:45:19 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 04 Dec 2018 14:44:49 GMT
Connection: keep-alive
ETag: "5c0692e1-264"
Accept-Ranges: bytes
更新版本为1.15
kubectl set image deployment.apps/nginx nginx=nginx:1.15
#动态监听pod状态
//默认滚动更新,先生成一个新的pod,然后删除旧pod
kubectl get pods -w
#更新完pod的IP会改变
kubectl get pods -o wide
2.4 回滚
kubectl rollout
对资源进行回滚的管理
查看历史版本
kubectl rollout history deployment.apps/nginx
回滚命令
#回滚到上一个版本
kubectl rollout undo deployment.apps/nginx
#回滚指定版本
kubectl rollout undo deployment.apps/nginx --to-revision=1
#检查回滚状态
kubectl rollout status deployment.apps/nginx
以上是关于k8s—kubectl命令简单使用的主要内容,如果未能解决你的问题,请参考以下文章