[k8s集群管理]

SourceURL:file:///home/student/Desktop/k8s.doc

k8s集群管理

信息查询命令

子命令

说明

help

用于查看命令及子命令的帮助信息

cluster-info

显示集群的相关配置信息

api-resources

查看当前服务器上所有的资源对象

api-versions

查看当前服务器上所有资源对象的版本

config

管理当前节点上的认证信息

help

# 查看帮助命令信息

[root@master ~]# kubectl help version

cluster-info

# 查看集群状态信息

[root@master ~]# kubectl cluster-info

api-resources

# 查看资源对象类型

[root@master ~]# kubectl api-resources

api-versions

# 查看资源对象版本

[root@master ~]# kubectl api-versions

config

# 查看当前认证使用的用户及证书

[root@master ~]# kubectl config get-contexts

CURRENT   NAME                          CLUSTER      AUTHINFO

*        kubernetes-admin@kubernetes   kubernetes   kubernetes-admin

# 使用 view 查看详细配置

[root@master ~]# kubectl config view

集群管理授权

[root@harbor ~]# vim /etc/hosts

192.168.88.240  harbor

192.168.88.50   master

192.168.88.51   node-0001

192.168.88.52   node-0002

192.168.88.53   node-0003

[root@harbor ~]# dnf makecache

[root@harbor ~]# dnf install -y kubectl

[root@harbor ~]# mkdir -p $HOME/.kube

[root@harbor ~]# rsync -av master:/etc/kubernetes/admin.conf $HOME/.kube/config

[root@harbor ~]# chown $(id -u):$(id -g) $HOME/.kube/config

[root@harbor ~]# kubectl get nodes

Pod 管理

创建 Pod

  • 上传镜像到 harbor 仓库
    rsync -av public/myos.tar.xz 192.168.88.50:/root/

# 导入镜像

[root@master ~]# docker load -i myos.tar.xz

# 上传镜像到 library 项目

[root@master ~]# docker images|while read i t _;do

    [[ "${t}" == "TAG" ]] && continue

    [[ "${i}" =~ ^"harbor:443/".+ ]] && continue

    docker tag ${i}:${t} harbor:443/library/${i##*/}:${t}

    docker push harbor:443/library/${i##*/}:${t}

    docker rmi ${i}:${t} harbor:443/library/${i##*/}:${t}

done

  • 创建 Pod

# 创建 Pod 资源对象

[root@master ~]# kubectl run myweb --image=myos:httpd

pod/myweb created

# 查询资源对象

[root@master ~]# kubectl get pods -o wide

NAME     READY   STATUS    RESTARTS   AGE   IP           NODE

myweb    1/1     Running   0          3s    10.244.1.3   node-0001

# 访问验证

[root@master ~]# curl http://10.244.1.3

Welcome to The Apache.

Pod 创建过程

Pod 管理命令(1)

子命令

说明

备注

run

创建 Pod 资源对象

创建即运行,没有停止概念

get

查看资源对象的状态信息

常用参数: -o 显示格式

create

创建资源对象

不能创建 Pod

describe

查询资源对象的属性信息

logs

查看容器的报错信息

常用参数: -c 容器名称

get

# 查看 Pod 资源对象

[root@master ~]# kubectl get pods

# 只查看资源对象的名字

[root@master ~]# kubectl get pods -o name

# 查看资源对象运行节点的信息

[root@master ~]# kubectl get pods -o wide

# 查看资源对象详细信息,Yaml/Json 格式

[root@master ~]# kubectl get pod myweb -o yaml

# 查看名称空间

[root@master ~]# kubectl get namespaces

# 查看名称空间中的 Pod 信息

[root@master ~]# kubectl -n kube-system get pods

create

# 创建名称空间资源对象

[root@master ~]# kubectl create namespace work

# 查看名称空间

[root@master ~]# kubectl get namespaces

run

# 在 work 名称空间创建 Pod

[root@master ~]# kubectl -n work run myhttp --image=myos:httpd

# 查询资源对象

[root@master ~]# kubectl -n work get pods -o wide

# 访问验证

[root@master ~]# curl http://10.244.2.2

Welcome to The Apache.

describe

# 查看资源对象的配置信息

[root@master ~]# kubectl -n work describe pod myhttp

# 查看 work 名称空间的配置信息

[root@master ~]# kubectl describe namespaces work

logs

# 查看容器日志

[root@master ~]# kubectl -n work logs myhttp

[root@master ~]# kubectl -n default logs myweb

排错三兄弟:kubectl get   kubectl describe  kubectl logs

Pod 管理命令(2)

子命令

说明

备注

exec

在某一个容器内执行特定的命令

可选参数: -c 容器名称

cp

在容器和宿主机之间拷贝文件或目录

可选参数: -c 容器名称

delete

删除资源对象

可选参数: -l 标签

命令示例

exec

# 在容器内执行命令

[root@master ~]# kubectl exec -it myweb -- ls

[root@master ~]# kubectl exec -it myweb -- bash

[root@myweb html]# ifconfig eth0

cp

# 与容器进行文件或目录传输

[root@master ~]# kubectl cp myweb:/etc/yum.repos.d /root/aaa

tar: Removing leading `/' from member names

[root@master ~]# tree /root/aaa

/root/aaa

├── local.repo

├── Rocky-AppStream.repo

├── Rocky-BaseOS.repo

└── Rocky-Extras.repo

[root@master ~]# kubectl -n work cp /etc/passwd myhttp:/root/mima

[root@master ~]# kubectl -n work exec -it myhttp -- ls /root/

delete

# 删除资源对象

[root@master ~]# kubectl delete pods myweb

pod "myweb" deleted

# 删除 work 名称空间下所有 Pod 对象

[root@master ~]# kubectl -n work delete pods --all

pod "myhttp" deleted

# 删除名称空间

[root@master ~]# kubectl delete namespaces work

namespace "work" deleted

  • ·  

资源监控组件

配置授权令牌

[root@master ~]# echo 'serverTLSBootstrap: true' >>/var/lib/kubelet/config.yaml

[root@master ~]# systemctl restart kubelet

[root@master ~]# kubectl get certificatesigningrequests

[root@master ~]# kubectl certificate approve csr-2hg42

[root@master ~]# kubectl get certificatesigningrequests

安装插件 metrics

# 上传镜像到私有仓库

[root@master ~]# cd plugins/metrics

[root@master metrics]# docker load -i metrics-server.tar.xz

[root@master metrics]# docker images|while read i t _;do

    [[ "${t}" == "TAG" ]] && continue

    [[ "${i}" =~ ^"harbor:443/".+ ]] && continue

    docker tag ${i}:${t} harbor:443/plugins/${i##*/}:${t}

    docker push harbor:443/plugins/${i##*/}:${t}

    docker rmi ${i}:${t} harbor:443/plugins/${i##*/}:${t}

done

# 使用资源对象文件创建服务

[root@master metrics]# sed -ri 's,^(\s*image: )(.*/)?(.+),\1harbor:443/plugins/\3,' components.yaml

140:     image: registry.k8s.io/metrics-server/metrics-server:v0.6.4

[root@master metrics]# kubectl apply -f components.yaml

# 验证插件 Pod 状态

[root@master metrics]# kubectl -n kube-system get pods

证书签发

# 查看节点资源指标

[root@master metrics]# kubectl top nodes

#--------------- 在所有计算节点配置证书 -----------------

[root@node ~]# echo 'serverTLSBootstrap: true' >>/var/lib/kubelet/config.yaml

[root@node ~]# systemctl restart kubelet

#--------------- 在 master 签发证书 -------------------

[root@master ~]# kubectl certificate approve $(kubectl get csr -o name)

[root@master ~]# kubectl get certificatesigningrequests

资源指标监控

# 获取资源指标有延时,等待 15s 即可查看

[root@master ~]# kubectl top nodes

资源清单文件

资源清单文件

[root@master ~]# vim myweb.yaml

---

kind: Pod

apiVersion: v1

metadata:

  name: myweb

spec:

  containers:

  - name: nginx

    image: myos:nginx

status: {}

管理命令

子命令

说明

备注

create

创建文件中定义的资源

支持指令式和资源清单文件配置

apply

创建(更新)文件中定义的资源

只支持资源清单文件(声明式)

delete

删除文件中定义的资源

支持指令式和资源清单文件配置

replace

更改/替换资源对象

强制重建 --force

命令示例

create

# 创建资源对象

[root@master ~]# kubectl create -f myweb.yaml

pod/myweb created

# 不能更新,重复执行会报错

[root@master ~]# kubectl create -f myweb.yaml

Error from server (AlreadyExists): error when creating "myweb.yaml": pods "myweb" already exists

delete

# 使用资源清单文件删除

[root@master ~]# kubectl delete -f myweb.yaml

pod "myweb" deleted

[root@master ~]# kubectl get pods

No resources found in default namespace.

apply

# 创建资源对象

[root@master ~]# kubectl apply -f myweb.yaml

pod/myweb created

# 更新资源对象

[root@master ~]# kubectl apply -f myweb.yaml

pod/myweb configured

# 强制重建资源对象

[root@master ~]# kubectl replace --force -f myweb.yaml

pod "myweb" deleted

pod/myweb created

# 删除资源对象

[root@master ~]# kubectl delete -f myweb.yaml

pod "myweb" deleted

# 拓展提高

# 与 kubectl apply -f myweb.yaml 功能相同

[root@master ~]# cat myweb.yaml |kubectl apply -f -

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值