当前位置: 首页 > news >正文

kubernetes入门

一.参考

安装1.23.0版本的k8s,更高版本会报错 master node not found.

kubeadm config images list下载指定版本 kubeadm配置文件_温柔一刀的技术博客_51CTO博客

Kubernetes集群安装与配置详解:从环境准备到工具安装全方位指南!_kubernetes安装详解-CSDN博客

VMware 安装 Centos7 超详细过程 | 菜鸟教程

K8S集群搭建——cri-dockerd版(包含问题解决方案)-CSDN博客

https://www.cnblogs.com/liuzhonghua1/p/18010847

基于kubernetes组件初步部署k8s-CSDN博客

kubeadm config images pull 拉取镜像失败的问题-CSDN博客

kubeadm init后看不到镜像 kubeadm node not found_mob64ca1405a060的技术博客_51CTO博客

二.背景

多台应用的自动发布部署。

根据不同机器的性能,自动调度、抢占、下线pod到不同机器。

不同的pod,ip是内网地址,如何互相通信.

三.架构

四.示例

1.cgoups

支持的subsystem

root@myweb-57c44474d8-45jwv:/usr/local/tomcat/webapps/demo# stat -fc %T /sys/fs/cgroup
tmpfs
root@myweb-57c44474d8-45jwv:/usr/local/tomcat/webapps/demo# cat /proc/cgroups
#subsys_name    hierarchy       num_cgroups     enabled
cpuset  10      18      1
cpu     2       128     1
cpuacct 2       128     1
memory  8       128     1
devices 4       128     1
freezer 9       18      1
net_cls 7       18      1
blkio   11      128     1
perf_event      5       18      1
hugetlb 6       18      1
pids    3       128     1
net_prio        7       18      1

测试脚本

i=0; while [ True ]; do i=$i+1;done;

运行发现cpu使用 100%.

执行cgroups限制脚本如下:

[root@k8s-node1 Downloads]# mkdir /sys/fs/cgroup/cpu/test1
[root@k8s-node1 Downloads]# echo $$ > /sys/fs/cgroup/cpu/test1/tasks
[root@k8s-node1 Downloads]# echo 10000 > /sys/fs/cgroup/cpu/test1/cpu.cfs_quota_us
[root@k8s-node1 Downloads]# more  /sys/fs/cgroup/cpu/test1/cpu.cfs_quota_us
10000

在运行测试脚本,发现cpu只使用了10%.

2.k8s部署

mysql和myweb的deployment和service部署示例.

访问地址:http://192.168.12.130:30001/demo/index.jsp

其中,yaml文件如下:

mysql-deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:name: mysqllabels:app: mysql
spec:replicas: 1selector:matchLabels:app: mysqltemplate:metadata:labels:app: mysqlspec:containers:- name: mysqlimage: mysql:5.7env:- name: MYSQL_ROOT_PASSWORDvalue: "123456"ports:- containerPort: 3306

mysql-svc.yaml

apiVersion: v1
kind: Service
metadata:name: mysql
spec:ports:- port: 3306selector:app: mysql

myweb-deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:name: myweblabels:app: myweb
spec:replicas: 2selector:matchLabels:app: mywebtemplate:metadata:labels:app: mywebspec:containers:- name: mywebimage: kubeguide/tomcat-app:v1env:- name: MYSQL_SERVICE_HOSTvalue: 10.98.65.219ports:- containerPort: 8080

myweb-svc.yaml

apiVersion: v1
kind: Service
metadata:name: myweb
spec:type: NodePortports:- port: 8080nodePort: 30001selector:app: myweb

五.概念

1.cgroups

用来限制、控制与分离一个进程组的资源(如CPU、内存、磁盘输入输出等).

2.kubernetes

Kubernetes 是一个开源的容器编排引擎,用来对容器化应用进行自动化部署、扩缩和管理.

3.node

一个虚拟机或者物理机器,取决于所在的集群配置。 每个节点包含运行pod所需的服务.节点上的组件包括 kubelet、 容器运行时(docker)以及 kube-proxy.

4.namespace/context

在单个集群中隔离 API 资源组的机制.将租户的工作负载划分到各不相同的逻辑管理单元中。

5.service/ClusterIp

将运行在一个或一组pod上的应用公开为外部服务的方法.

6.endpoint

service中的一组ip和port.

7.endpointSlice

8.deployment

管理应用的一组 Pod,通常适用于无状态的负载。

9.replicatSet/statefulSet/daemonSet/job

维护一组在任何时候都处于运行状态的 Pod 副本的稳定集合.

10.pod

是一组容器,在 Kubernetes 中创建和管理的、最小的可部署的计算单元。

11.container/image

比如类和对象.image是一个静态的随时可以运行的软件包, 包含运行应用程序所需的环境配置.

12.configMap

是一种 API 对象,用来将非机密性的数据保存到键值对中。使用时pod可以将其用作环境变量、命令行参数或者存储卷中的配置文件。

13.LimitRange

14.pv/pvc

15.macVlanIp

六.原理


http://www.mrgr.cn/news/15587.html

相关文章:

  • 算法练习题06:leetcode793每日温度
  • [米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-22读写I2C接口的RTC时钟芯片
  • 讯鹏科技智慧公厕专业供应商,解读智慧公厕有哪些奥秘
  • python-读取word中的内容
  • 2024最新盘点:CRM 客户管理系统哪个好用?
  • 格式化漏洞-加载so函数
  • 深入理解 Java 中 Map 和 Set 接口的高级用法
  • 论文翻译:Scaling Instruction-Finetuned Language Models
  • FineReport帆软报表:使用JAVA批量更新报表里的数据集连接名
  • Python——类装饰器
  • 【方法】如何编辑“只读方式”下的Word文档?
  • 2024年第四届《英语世界》杯全国大学生翻译大赛
  • Rocksdb一些日志
  • carla unreal engine源码:如何创建radar可视化探测锥
  • ESP32应用开发-Webserver
  • 大数据技术之Flume 数据流监控——Ganglia 的安装与部署(11)
  • 【惠农网-注册安全分析报告】
  • 前端页面调用本地exe,打开exe主界面
  • MathType常见问题汇总
  • Python中的数据类型知识汇总