kubectl常用命令 和 配置
yaml文件大多从已知的yaml的基础上进行修改
kubectl run nginx --image=nginx --dry-run=client -o yaml > pod1.yaml
创建资源对象
kubectl create -f xxx.yaml(文件)、kubectl create -f <directory>(目录下所有文件)
查看资源对象
kubectl get nodes
kubectl get pods -n <namespace> -o wide
描述资源对象
kubectl describe nodes <node-name>
kubectl describe pods -n <namespace> kubectl describe <pod-name>
kubectl describe pods <rc-name>
删除资源对象
kubectl delete -f <filename>
kubectl delete pods,services -l name=<label-name>
kubectl delete pods --all(生产环境慎用)
执行容器的命令
kubectl exec <pod-name> date(默认使用第一个容器执行Pod的date命令)
kubectl exec <pod-name> -c <container-name> date(指定Pod中的某个容器执行date命令)
kubectl exec -it <pod-name> -c <container-name> /bin/bash (相当与docker exec -it <container-name> /bin/bash)
查看容器的日志
kubectl logs <pod-name>
kubectl logs -f <pod-name> -c <container-name> (相当于tail -f 命令)
kubectl格式化输出
显示Pod的更多信息
kubectl get pods -n <namespace> -o wide
以yaml格式显示
kubectl get pods -n <namespace> -o yaml
直接更新yaml更新并生效配置
kubectl edit 资源类型 <资源id>
以自定义列明显示Pod信息
kubectl get pod <pod-name> -o =custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion
基于文件的自定义列名输出
kubectl get pods <pod-name> -o=custom-columns-file=template.txt
输出结果排序
kubectl get pods --sort-by=.metadata.name
kubernetes集群管理指南
node的管理
命令:
kubectl replace -f xxx.yaml
kubectl patch
kubectl cordon <node_name> kubectl uncordon <node_name>(对node节点的隔离和恢复)
删除节点:
kubectl drain swarm1 --delete-local-data --force --ignore-daemonsets
kubectl delete node swarm1
使用:
kubectl get nodes
kubectl cordon <node_name> kubectl uncordon <node_name>
Label的管理:
给node设置标签
添加:kubectl label node lustre-manager-1 node-role.kubernetes.io/minion-1=
删除:kubectl label node lustre-manager-1 node-role.kubernetes.io/minion-1-
修改: kubectl label node lustre-manager-1 node-role.kubernetes.io/minion-1= --overwrite
给pod设置标签
把node改成pod即可
其他命令:
node节点加入master:kubeadm join 192.168.138.131:6443 --token zlk694.ev3odwj7rbyaggz6 --discovery-token-ca-cert-hash sha256:eefe51ccf1c54149f5ce89423c100b1e0de8f8081c7c2c0e07a7613ef2025146
生成加入master的命令:kubeadm token create --print-join-command
删除node节点:1)kubectl drain swarm1 --delete-local-data --force --ignore-daemonsets 2)kubectl delete node swarm1
node、pod的亲和策略(Affility): 常采用label或主机名的匹配来达到把相关的pod放到一起或分开的目的
查看docker镜像的dockerfile
docker history <IMAGE ID> --format "{{.CreatedBy}}" --no-trunc |tac | awk '{if($3~/nop/){for(i=1;i<=3;i++){$i=""};print substr($0,4)}else{print "RUN",$0}}'
docker inspect <Docker ID>
两种数据库配置:
1. 数据库在k8s外, k8s内的程序通过 endpoint 进行访问
Kubernetes连接外部数据源 - ericnie - 博客园 k8s集群内部访问外部的数据库(mysql/redis)-慕课网
2. 通过持久卷 进行设置
K8s之MySQL实现数据持久化【附源码】_warrent_51CTO博客
控制器几种常见的类型类型:
Deployment:会控制副本数, 生成 rs 和 pod
Deamon:在节点上生成 收日志 或 监视进程的pod,可用这个
StatefulSet:有状态式,创建有先后顺序,关闭也有先后顺序的 需要一个无头Service一起使用。生成的pod命名跟随数字从0开始增加。一个pod宕机后,会生成同名的pod,所有状态保持一致。同时无头Service 通过 服务名拼凑出的字符串可以直接对应IP
Service:通过selector匹配具有一定label的一批pod。对这批pod进行RoundRobin循环访问,达到负荷均衡。 type:NodePort可以对外暴露端口 Ingress-Nginx:会对域名 协议 权限进行处理
Job:单一任务
CronJob:定时任务
ConfigMap: 对环境变量进行统一储存和管理,其他pod可以对它引用寻找变量的值
Secret:需要加密的变量的存储 如数据库用户名密码等,其他pod可以对它引用寻找变量的值
这个博客很好,很多例子 kubetnetes - 文章分类 - BachrRR - 博客园
pod的生命周期:
init-c main-c readiness liveness start end
init-c 首先会执行,而且有多个init-c时,是顺序一个一个地执行。要求幂等,一定能成功,否则不会执行main-c。 成功后进入main-c和start。 readiness一段时间后检查是否就绪。 liveness一段时间后检查是否生存,(通常时对端口或文件查看是否生存)不生存,pod就结束。 结束前会执行end。
通过 污点 容忍 亲和,来限制pod被分配到哪个节点,或 哪几个pod分到一起,或不能在一起
一个很好的切换node的例子 k8s学习:更换master节点-江哥架构师笔记
创建NFS的pv及pvc
https://www.cnblogs.com/Smbands/p/11059843.html
https://www.bilibili.com/video/BV1M54y187jb?from=search&seid=7187848201459592744&spm_id_from=333.337.0.0
今日头条
yum -y install nfs-utilssystemctl start nfs && systemctl enable nfsmkdir -pv /data/volumes/{v1,v2,v3}chown nobody.nobody /data/volumes/{v1,v2,v3}
kubectl常用命令 和 配置相关推荐
- k8s pod分类、核心组件、网络模型、kubectl常用命令
k8s的pod分类.核心组件.网络模型.kubectl常用命令 K8s基本概念 pod分类 核心组件 K8s的三种网络模型 kubectl常用操作 kubeconfig配置文件 kubectl管理命令 ...
- kubernetes基础介绍及kubectl常用命令
kubernetes基础介绍及kubectl常用命令 k8s的pod分类 自主式pod 控制器管理的pod 核心主键 HPA service 网络模型 同节点Pod之间的通信 不同节点上的Pod通信 ...
- Kubectl 常用命令, 开发人员常用k8s命令
Kubectl 常用命令: 什么是常用,我用的,就是常用的
- Vim常用命令和配置
[TOC] Vim常用命令和配置 Mac 终端键入 vimtutor 即可进入Vim入门教程 问题收集 vim代码粘贴,格式混乱到逆天.这是因为vim设置了自动缩进造成的问题, 所以如果你需要在ins ...
- 容器技术之kubectl常用命令
kubectl用于运行Kubernetes集群命令的管理工具.本文概述涵盖了kubectl语法,对命令操作的描述,并列举了常用命令. Kubectl命令详细列表请查看:Kubernetes kubec ...
- kubectl常用命令大全详解
文章目录 说明 基础命令详解:create.delete.get.run.expose.set.explain.edit create 命令:根据文件或者输入来创建资源 创建Deployment和Se ...
- Kubernetes之kubectl常用命令使用指南:3:故障对应
kubectl是一个用于操作kubernetes集群的命令行接口,通过利用kubectl的各种命令可以实现各种功能,是在使用kubernetes中非常常用的工具.这里我们会通过一些简单的实例来展现其中 ...
- Kubectl 常用命令大全(*)
前言 Kubectl是一个用于操作kubernetes(k8s)集群的命令行接口,通过利用kubectl的各种命令可以实现各种功能,是在使用kubernetes中非常常用的工具. Kubectl 常用 ...
- kubectl常用命令_《蹲坑学kubernetes》之十五:kubectl命令详解
kubectl用于运行Kubernetes集群命令的管理工具.本章节主要讲了kubectl基本语法和使用方法.在以后的实际工作中,使用越来越多,也会越来越熟悉. 1.kubectl语法 kubectl ...
最新文章
- 利用phpmailer类邮件发送
- ssh升级后+sftp+java_java中使用JSCH包,SFTP及SSH2文件操作及远程命令执行(改进)...
- 网络营销外包——网络营销外包专员是如何提升网站权重数值的?
- 使用pymysql进行数据库的增删改查
- 探究call 和 apply 的原理
- 流程DEMO-合同会审表
- 做了5年程序员才明白,这项能力原来这么重要
- linux添加ctrl c,Linux ctrl-c explained(ctrl-c 详解)
- 智伴机器人安卓怎么设置个人热点_智伴机器人怎么联网?看这个联网视频教程...
- 高速下载百度网盘资料(Tampermonkey+百度网盘直链下载助手+xdown)
- 离职时如何拒绝领导的挽留
- easyUI入门教程
- 勾号、叉号、圈号的收集
- HJ87 密码强度等级(一把过)
- 2020年烟花爆竹经营单位主要负责人试题及答案及烟花爆竹经营单位主要负责人实操考试视频
- 数据科学导引——各国幸福指数聚类数据集的分析
- Python八大行星漂亮动画演示
- 基于Windows8与Visual Studio11开发第一个ring3驱动程序
- 计算机体系结构——流水线技术(Pipelining)
- ⭐算法入门⭐《二叉树》简单07 —— LeetCode 993. 二叉树的堂兄弟节点