k8s—kubectl命令简单使用

简单整理

  • 一、kubectl 使用
    • 1.1 查询命令
    • 1.2 命名空间操作
  • 二、项目的生命周期
    • 2.1 创建
    • 2.2 发布
    • 2.3 更新
    • 2.4 回滚

一、kubectl 使用

1.1 查询命令

查看版本信息

kubectl version

k8s—kubectl命令简单使用_第1张图片

查看资源对象简写

kubectl api-resources

k8s—kubectl命令简单使用_第2张图片

查看集群信息

kubectl cluster-info

在这里插入图片描述

配置kubectl自动补全

source <(kubectl completion bash)

node节点查看日志

journalctl -u kubelet -f

k8s—kubectl命令简单使用_第3张图片

查看master节点状态

kubectl get componentstatuses

kubectl get cs

k8s—kubectl命令简单使用_第4张图片

1.2 命名空间操作

查看命令空间

用于允许不同命令空间的相同类型的资源的重名的

kubectl get namespaces

kubectl get ns

k8s—kubectl命令简单使用_第5张图片

查看default命名空间的所有资源

kubectl get all -n default

不加-n 表示默认查的default

k8s—kubectl命令简单使用_第6张图片

创建命名空间cc11

kubectl create ns cc11

kubectl get ns

k8s—kubectl命令简单使用_第7张图片

删除命名空间cc11

kubectl delete namespaces cc11

k8s—kubectl命令简单使用_第8张图片

在命名空间kube-public创建pod

kubectl create deployment nginx-test1 --image=nginx -n kube-public

kubectl get pod -n kube-public

k8s—kubectl命令简单使用_第9张图片

查看这个资源的详细信息

kubectl describe deployments nginx -n kube-public

k8s—kubectl命令简单使用_第10张图片

登录容器

#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

在这里插入图片描述
k8s—kubectl命令简单使用_第11张图片

删除副本控制器

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

k8s—kubectl命令简单使用_第12张图片

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

k8s—kubectl命令简单使用_第13张图片k8s—kubectl命令简单使用_第14张图片

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

k8s—kubectl命令简单使用_第15张图片

k8s—kubectl命令简单使用_第16张图片

2.4 回滚

kubectl rollout

对资源进行回滚的管理

查看历史版本

kubectl rollout history deployment.apps/nginx

k8s—kubectl命令简单使用_第17张图片

回滚命令

#回滚到上一个版本
kubectl rollout undo deployment.apps/nginx

#回滚指定版本
kubectl rollout undo deployment.apps/nginx --to-revision=1

#检查回滚状态
kubectl rollout status deployment.apps/nginx

你可能感兴趣的:(k8s,kubernetes)