K8S管理命令(一)

配置kubectl自动补全

source <(kubectl completion bash)

node节点查看日志

journalctl -u kubelet -f

在这里插入图片描述

kubectl get pods --show tables

在这里插入图片描述

标签的格式(键值对的格式)

查看master节点的状态

kubectl get cs

在这里插入图片描述

 kubectl api-resources | grep namespace

default #系统的默认命名空间

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建命名空间

kubectl create ns ky18(删除用delete)

在这里插入图片描述
在这里插入图片描述

区别

kubectl run:用于创建一个自主式的/静态Pod

kubectl delete pod

kubectl create deployment :用于创建deployment控制器管理的Pod
kubectl delete deployment
kubectl scale --replicas=
kubectl get pod
在这里插入图片描述

pod无法删除,总是处于terminate状态,则要强行删除pod

kubectl delete pod <pod-name> -n <namespace> --force --grace-period=0

在这里插入图片描述

service的四种类型

在这里插入图片描述

nodeport只支持四层转发,并且端口是有限的

如何查看一个service绑定了几个节点

在这里插入图片描述

删除标签后会自动生成一个从而达到期望值

在这里插入图片描述

将删除的标签添加回来

在这里插入图片描述

K8S中的四种端口号:

containerPort:容器内部进程使用的端口
Port:为serviceclusterIP上暴露的端口
targetPort:容器映射在pod上的端口
nodeport:将端口映射到宿主机上,提供外部流量访问K8S集群中service的入口

k8s集群内部:客户端--> clusterIP:port -- 通过  targetport --> podip:containerport

                       客户端--> clusterIP:port -- 通过  targetport --> podip:containerport

k8s集群外部:客户端 --> nodeIP:nodeport --通过 targetport-->  podip:containerport

在这里插入图片描述

更新资源

kubectl set

在这里插入图片描述

回滚 kubectl rollout

可以回滚到上次的版本号
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结:

创建

kubectl create <资源类型> <资源名称> --image=<镜像名> 【--port= --relicas】

发布

kubectl expose <资源类型> <资源名称> --port=  --target-port=  --type=ClusterIP|NodePort|...

更新

kubectl set image <资源类型> <资源名称> <容器名>=<镜像名>

回滚

kubectl rollout undo <资源类型> <资源名称>      #默认时回滚到上一个版本状态

                                                                          --to-revision=              #回滚到指定版本

kubernetes使用 (一)kubectl基础命令

kubectl是用来管理kubernetes集群的一个命令行工具。可以用来对集群安装、管理应用服务( ̄▽ ̄)"

语法格式

kubectl [comand] [type] [name] [flags]
 
参数说明
#参数
comand      #指定要对资源执行的操作  
type        #指定要操作的资源类型,资源类型是大小写
name        #资源的名称,如果不指定则显示所有
flags       #可选参数 例如: 可以用-s 或者-server参数指定k8s api server的地址和端口

一. 创建资源(create

1. 命令行创建

kubectl create deployment nginx --image=nginx:1.12
 
#参数说明
create              #创建一个新的资源
deployment          #资源类型为deployment,现在可以不需要知道这个是什么,可以简单理解为docker容器的一个控制器
nginx               #资源的名称为 nginx
--image=nginx:1.12  #使用镜像为nginx:1.12

2. yaml文件创建

cat > nginx-2.yaml <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-2
spec:
  selector:
    matchLabels:
      app: nginx-te
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx-te
    spec:
      containers:
      - name: nginx
        image: nginx:1.12
EOF

部署

#需要-f指定要使用的yaml文件
kubectl create -f nginx-2.yaml 

二. 查询资源(get)

[root@k8s-master01 ~]# kubectl get deployment
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
nginx     1/1     1            1           52m
nginx-2   1/1     1            1           13m
 
 
#这是我们刚才创建的两个控制器nginx、nginx-2
#deployment是管理pod的一个控制器,他本身是不提供服务的,只是管理容器服务
#我们的控制器在创建后,默认是有一个副本(容器)运行的
 
[root@k8s-master01 ~]# kubectl get pod
NAME                       READY   STATUS    RESTARTS   AGE
nginx-2-564757b54f-j7b8h   1/1     Running   0          16m  #nginx-2 控制器的容器
nginx-75dbbf4545-gjtwg     1/1     Running   0          54m  #nginx   控制器的容器

三. 更新资源(apply、edit)

1. apply (基于yaml文件更新)

vi nginx-2.yaml 
 
#修改
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-2
spec:
  selector:
    matchLabels:
      app: nginx-te
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx-te
    spec:
      containers:
      - name: nginx
        image: nginx:1.13  #我这里修改镜像版本

更新

[root@k8s-master01 ~]# kubectl apply -f nginx-2.yaml 
Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
deployment.apps/nginx-2 configured
 
 
#查看控制器的yaml文件 (-o yaml 查看资源的yaml文件)
[root@k8s-master01 ~]# kubectl get deployment nginx-2 -o yaml | grep image:
 
#返回
- image: nginx:1.13
 
 
#这里可以看到控制器的镜像已经修改为1.13版本
#通过apply更新的yaml文件,控制器被修改后 同时会关闭旧的副本(容器)
#然后基于新的yaml生成新的容器
 
[root@k8s-master01 ~]# kubectl get pod 
NAME                       READY   STATUS    RESTARTS   AGE
nginx-2-7dfdbcbc7d-ccg7d   1/1     Running   0          11m
nginx-75dbbf4545-gjtwg     1/1     Running   0          97m

2. edit (基于vim在线修改资源)

#在线修改控制器nginx的信息
kubectl edit deployment nginx
 
#修改完成后wq保存退出

在这里插入图片描述

四. 删除资源(delete)

1. 基于yaml文件删除

kubectl delete -f nginx-2.yaml 

#他会基于已有的yaml文件的名称信息,删除对应的资源信息

2. 基于控制器名称删除资源

#刚接触的时候陷入误区,老是想去删除运行的pod
#但是因为控制器会保持副本数量,删一个、建一个
#后来发现,(⊙o⊙)~原来是要删除控制器啊

#查看pod
[root@k8s-master01 ~]# kubectl get pod
NAME                     READY   STATUS    RESTARTS   AGE
nginx-56c6cf99b6-2c9nr   1/1     Running   0          19m
 
#查看deployment控制器
[root@k8s-master01 ~]# kubectl get deployment
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nginx   1/1     1            1           118m

尝试删除pod

[root@k8s-master01 ~]# kubectl delete pod nginx-56c6cf99b6-2c9nr 
pod "nginx-56c6cf99b6-2c9nr" deleted
 
#然后容器新建了
[root@k8s-master01 ~]# kubectl get pod
NAME                     READY   STATUS    RESTARTS   AGE
nginx-56c6cf99b6-57g6r   1/1     Running   0          11s

删除控制器

[root@k8s-master01 ~]# kubectl delete deployment nginx
deployment.apps "nginx" deleted
 
#删除成功
[root@k8s-master01 ~]# kubectl get deployment
No resources found in default namespace.
 
#查看pod容器
[root@k8s-master01 ~]# kubectl get pod
No resources found in default namespace.
#删除成功

kubernetes默认是没有tab键补全的,需要手动设置一下

cat >> /etc/bashrc <<EOF
source <(kubectl completion bash)
EOF
source /etc/bashrc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值