通过命令学习k8s
1、kubectl 命令可以列出所有命令
2、kubectl version 命令可以查看版本号
3、kubectl cluster-info命令可以查看集群信息(192.168.218.136:6443 即为kube-apiserver的IP和端口。)
 [root@k8s-master ~]# kubectl cluster-info
 Kubernetes master is running at https://192.168.218.136:6443
 KubeDNS is running at https://192.168.218.136:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
 To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
4、也可以通过 用户主目录下的.kube/config文件查看集群信息
 用户主目录下的.kube/config
 [root@k8s-master ~]# cat .kube/config
 apiVersion: v1
 clusters:
 - cluster:
     certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FUR...0VSVElGSUNBVEUtLS0tLQo=
     server: https://192.168.218.136:6443
   name: kubernetes
 contexts:
 - context:
     cluster: kubernetes
     user: kubernetes-admin
   name: kubernetes-admin@kubernetes
 current-context: kubernetes-admin@kubernetes
 kind: Config
 preferences: {}
 users:
 - name: kubernetes-admin
   user:
     client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1J....BVEUtLS0tLQo=
     client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS...QVRFIEtFWS0tLS0tCg==
5、还可以通过config view命令查看配置
 [root@k8s-master ~]# kubectl config view
 apiVersion: v1
 clusters:
 - cluster:
     certificate-authority-data: DATA+OMITTED
     server: https://192.168.218.136:6443
   name: kubernetes
 contexts:
 - context:
     cluster: kubernetes
     user: kubernetes-admin
   name: kubernetes-admin@kubernetes
 current-context: kubernetes-admin@kubernetes
 kind: Config
 preferences: {}
 users:
 - name: kubernetes-admin
   user:
     client-certificate-data: REDACTED
     client-key-data: REDACTED
  ---然后可以通过curl访问 api server api接口。 也可以使用 10中的proxy访问api接口。
   curl -k https://192.168.218.136:6443 --cert /etc/kubernetes/pki/apiserver-kubelet-client.crt --key /etc/kubernetes/pki/apiserver-kubelet-client.key
6、通过kubectl get node 查看节点信息
 7、可通过kubectl get ns 拆开所有命名空间
 8、通过kubectl get pod -A 查看所有命名空间下的pod
 9、通过kubectl get svc-A 查看所有命名空间下的svc
 10、kubectl proxy 命令开启代理
 [root@k8s-master ~]# kubectl proxy --port=8080
 Starting to serve on 127.0.0.1:8080
11、通过proxy http接口访问k8s
 [root@k8s-master ~]# curl 127.0.0.1:8080
 {
   "paths": [
     "/api",
     "/api/v1",
     "/apis",
     "/apis/",
     "/apis/apps",
     "/apis/apps/v1",
     "/apis/autoscaling",
     "/apis/autoscaling/v1",
     "/apis/autoscaling/v2beta1",
     "/apis/autoscaling/v2beta2",
     "/apis/batch",
     "/apis/batch/v1",
     "/apis/extensions",
     "/apis/extensions/v1beta1",
     "/apis/networking.k8s.io",
     "/apis/networking.k8s.io/v1",
     "/apis/networking.k8s.io/v1beta1",
     "/apis/node.k8s.io",
     "/apis/node.k8s.io/v1beta1",
     "/apis/policy",
     "/apis/policy/v1beta1",
     "/healthz",
     "/healthz/autoregister-completion",
     "/healthz/etcd",
     "/healthz/log",
     "/healthz/ping",
     "/livez",
     "/livez/autoregister-completion",
     "/livez/etcd",
     "/livez/log",
     "/livez/ping",
     "/logs",
     "/metrics",
     "/openapi/v2",
     "/readyz",
     "/readyz/autoregister-completion",
     "/readyz/etcd",
     "/readyz/log",
     "/readyz/ping",
     "/readyz/shutdown",
     "/version"
    ......
[root@k8s-master ~]# curl 127.0.0.1:8080/livez/ping
 ok
[root@k8s-master ~]# curl 127.0.0.1:8080/version
 {
   "major": "1",
   "minor": "18",
   "gitVersion": "v1.18.0",
   "gitCommit": "9e991415386e4cf155a24b1da15becaa390438d8",
   "gitTreeState": "clean",
   "buildDate": "2020-03-25T14:50:46Z",
   "goVersion": "go1.13.8",
   "compiler": "gc",
   "platform": "linux/amd64"
 }
 [root@k8s-master ~]# curl 127.0.0.1:8080/healthz
 ok
[root@k8s-master ~]# curl 127.0.0.1:8080/healthz/etcd
 ok
[root@k8s-master ~]# curl 127.0.0.1:8080/healthz/log
 ok
[root@k8s-master ~]# curl 127.0.0.1:8080/api
 {
   "kind": "APIVersions",
   "versions": [
     "v1"
   ],
   "serverAddressByClientCIDRs": [
     {
       "clientCIDR": "0.0.0.0/0",
       "serverAddress": "192.168.218.136:6443"
     }
   ]
 }
[root@k8s-master ~]# curl 127.0.0.1:8080/api/v1
 {
   "kind": "APIResourceList",
   "groupVersion": "v1",
   "resources": [
     {
       "name": "bindings",
       "singularName": "",
       "namespaced": true,
       "kind": "Binding",
       "verbs": [
         "create"
       ]
     },
     {
       "name": "componentstatuses",
       "singularName": "",
       "namespaced": false,
       "kind": "ComponentStatus",
       "verbs": [
         "get",
         "list"
       ],
       "shortNames": [
         "cs"
       ]
     },
  
curl 127.0.0.1:8080/api/v1/pods  --查看所有pods 
 curl 127.0.0.1:8080/api/v1/namespaces/kube-system/pods/kube-scheduler-k8s-master  --查看 某个命名空间下的某个pod
20、kubelet,kube-scheduler-k8s-master、kube-controller-manager-k8s-master、kube-proxy-s8v4t 是如何找到 知道kubeapiserver的接口地址的呢?
 他们都挂载了自己的配置文件,在 /etc/kubernetes/ 目录下。
 其中 admin.conf 会被拷贝到 用户家目录下的 .kube/config 文件中。
即cp /etc/kubernetes/admin.conf ~/.kube/config
 [root@k8s-master ~]# ll /etc/kubernetes/
 -rw------- 1 root root 5451 7月  28 19:38 admin.conf
 -rw------- 1 root root 5491 7月  28 19:38 controller-manager.conf
 -rw------- 1 root root 1879 7月  28 19:38 kubelet.conf
 drwxr-xr-x 2 root root  113 7月  28 19:38 manifests
 drwxr-xr-x 3 root root 4096 7月  28 19:38 pki
 -rw------- 1 root root 5439 7月  28 19:38 scheduler.conf
另外,证书文件都放在pki目录下。
21、kubeapiserver 也可以开启http端口,这样就不需要证书了。
 22、查看日志
 kubectl logs kube-scheduler-k8s-master  -n kube-system
 kubectl logs kube-scheduler-k8s-master -c kube-scheduler -n kube-system 
22、proxy的代理功能
 curl http://ip:8080/api/v1/proxy/namespace/{namespace}/services/{name}  相当于访问services的url
 curl http://ip:8080/api/v1/proxy/namespace/{namespace}/pods/{name}    相当于访问pod的url 
23、访问etcd数据库
登录到k8s的etcd容器中,设置下面的环境变量
export ETCDCTL_ENDPOINTS=https://127.0.0.1:2379
 export ETCDCTL_CACERT=/etc/kubernetes/pki/etcd/ca.crt
 export ETCDCTL_CERT=/etc/kubernetes/pki/etcd/healthcheck-client.crt
 export ETCDCTL_KEY=/etc/kubernetes/pki/etcd/healthcheck-client.key
 export ETCDCTL_API=3
然后就可以通过etcdctl命令访问etcd数据库了
etcdctl get  /gaofeng/name
 etcdctl put /gaofeng/name  gg
etcdctl get --prefix --keys-only /
etcdctl get /registry/services/specs/default/kubernetes
相关文章:
通过命令学习k8s
1、kubectl 命令可以列出所有命令 2、kubectl version 命令可以查看版本号 3、kubectl cluster-info命令可以查看集群信息(192.168.218.136:6443 即为kube-apiserver的IP和端口。) [rootk8s-master ~]# kubectl cluster-info Kubernetes master is run…...
 
【redis】—— 初识redis(redis基本特征、应用场景、以及重大版本说明)
序言 本文将引导读者探索Redis的世界,深入了解其发展历程、丰富特性、常见应用场景、使用技巧等,最后会对Redis演进过程中具有里程碑意义的版本进行详细解读。 (一)初始redis Redis是一种基于键值对(key-value&#x…...
服务器显卡和桌面pc显卡有什么不同
服务器显卡和桌面 PC 显卡在设计目标、性能优化、功能支持和硬件规格上都有显著不同。以下是主要区别: 1. 设计用途 服务器显卡:主要用于计算、深度学习、数据分析、科学计算、虚拟化和图形渲染等任务。其设计目标是持续高负载计算,保证高稳…...
 
Chrome使用IE内核
Chrome使用IE内核 1.下载扩展程序IE Tab 2.将下载好的IE Tab扩展程序拖拽到扩展程序界面,之后重启chrome浏览器即可...
 
类和对象(C++)——默认成员函数,构造函数,析构函数
1. 类的默认成员函数 默认成员函数就是用户没有显式实现,编译器会⾃动⽣成的成员函数称为默认成员函数。⼀个类,不写的情况下编译器会默认生成以下6个默认成员函数,需要注意的是这6个中最重要的是前4个,最后两个取地址重载&#…...
深入理解 Vue v-model 原理与应用
一、引言 在 Vue.js 开发中,v-model是一个非常重要且强大的指令。它为开发者在处理表单输入和数据双向绑定等场景中提供了极大的便利。无论是新手还是有经验的开发者,深入理解v-model对于高效地构建 Vue 应用至关重要。本文将对v-model进行深入剖析,从其基本原理、使用方式…...
 
内网域环境、工作组、局域网等探针方案
1. 信息收集 1.1 网络收集 了解当前服务器的计算机基本信息,为后续判断服务器角色,网络环境做准备 systeminfo 详细信息 net start 启动服务 tasklist 进程列表 schtasks 计划任务(受权限影响) 了解当前服务器的网络接口信息…...
 
uniapp—android原生插件开发(3Android真机调试)
本篇文章从实战角度出发,将UniApp集成新大陆PDA设备RFID的全过程分为四部曲,涵盖环境搭建、插件开发、AAR打包、项目引入和功能调试。通过这份教程,轻松应对安卓原生插件开发与打包需求! 一、打包uniapp资源包: 打包…...
goframe开发一个企业网站 统一返回响应码 18
响应码的logic package returncodeimport ("context""gf_new_web/internal/service""github.com/gogf/gf/v2/errors/gcode""github.com/gogf/gf/v2/frame/g" )type sReturncode struct { }var (insReturncode sReturncode{}…...
 
基于STM32的智能门禁系统设计
引言 本项目基于STM32微控制器设计了一个智能门禁系统,通过集成多个传感器模块和控制设备,实现对门禁系统的自动化管理与控制。该系统能够通过RFID卡、密码输入、以及指纹传感器等多种方式对进出人员进行验证,并结合LCD显示屏提供实时信息反…...
 
Python学习从0到1 day28 Python 高阶技巧 ⑧ 递归
那就祝我们爬不同的山,还能回到同一条路上,不是时时见面,但是时时惦记之人 —— 24.11.13 递归 1.什么是递归 递归在编程中是一种非常重要的算法 递归:即方法(函数)自己调用自己的一种特殊编程写法 函数调用自己,即…...
知识见闻 - 苹果手机拨号键长按
苹果手机(iPhone)在拨号界面长按按键时有一些特定的功能。以下是iPhone拨号键盘上长按按键的主要功能: 数字键 0 - 长按可输入""号,用于国际电话拨号 - 这是最常用的长按功能之一,方便用户拨打国际电话 星号…...
在 KubeVirt 中使用 GPU Operator
在 KubeVirt 中使用 GPU Operator 基于最新的GPU Operator版本24.9.0。 原文链接:GPU Operator with KubeVirt — NVIDIA GPU Operator 24.9.0 documentation 1. 简介 KubeVirt 是 Kubernetes 的一个虚拟机管理插件,允许您在 Kubernetes 集群中运行和…...
 
安慰剂检验Stata代码(全套代码、示例数据及参考文献)
数据简介:随着因果推断方法在实证研究中的使用比例不断提升,越来越多的文章进行安慰剂检验。其检验基本原理与医学中的安慰剂类似,即使用假的政策发生时间或实验组进行分析,以检验能否得到政策效应。如果依然得到了政策效应&#…...
 
DAY6 线程
作业1: 多线程实现文件拷贝,线程1拷贝一半,线程2拷贝另一半,主线程回收子线程资源。 代码: #include <myhead.h> sem_t sem1; void *copy1()//子线程1函数 拷贝前一半内容 {int fd1open("./1.txt",O…...
 
基于STM32的智能门锁系统设计思路:蓝牙、RFID等技术
一、项目概述 在现代家居安全领域,传统门锁因其安全性不足、开锁方式单一等问题,已逐渐无法满足用户的需求。传统机械锁容易被撬开、复制钥匙,同时开锁方式仅限于物理钥匙,给用户带来不便。因此,本文旨在设计并开发一…...
 
AndroidStudio-广播
一、广播的本质 广播是一种数据传输方式 二、Android 中的广播 发送一条广播,可以被不同的广播接收者所接收,广播接收者收到广播之后,再进行逻辑处理。 三、收发标准广播 广播的收发过程分为三个步骤: 1.发送标准广播 2.定义…...
 
基于表格滚动截屏(表格全部展开,没有滚动条)
import html2canvasPro from html2canvas // 截图,平辅表格 async function resetAgSize() {const allColumns gridApi.value.getColumns()let totalColumnWidth 0let totalColumnHeight 0// 遍历每一个行节点gridApi.value.forEachNode((rowNode) > {totalCo…...
洛谷P1255
P1255 数楼梯 - 洛谷 | 计算机科学教育新生态 数楼梯 题目描述 楼梯有 N 阶,上楼可以一步上一阶,也可以一步上二阶。 编一个程序,计算共有多少种不同的走法。 输入格式 一个数字,楼梯数。 输出格式 输出走的方式总数。 样…...
vue3设置第三方组件 样式::v-deep
在Vue 3中,使用了Composition API的组件可以通过<style>标签内部的::v-deep选择器来深入作用于第三方组件的样式。::v-deep是一个 Scoped CSS 的“深度选择器”,可以穿透组件边界,影响子组件的样式。比如我想修改el-date-picker的颜色边…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
 
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
 
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
 
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
