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

bash 复制代码
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

测试脚本

bash 复制代码
i=0; while [ True ]; do i=$i+1;done;

运行发现cpu使用 100%.

执行cgroups限制脚本如下:

bash 复制代码
[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: mysql
  labels:
    app: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:5.7
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "123456"
        ports:
        - containerPort: 3306

mysql-svc.yaml

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

myweb-deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myweb
  labels:
    app: myweb
spec:
  replicas: 2
  selector:
    matchLabels:
      app: myweb
  template:
    metadata:
      labels:
        app: myweb
    spec:
      containers:
      - name: myweb
        image: kubeguide/tomcat-app:v1
        env:
        - name: MYSQL_SERVICE_HOST
          value: 10.98.65.219
        ports:
        - containerPort: 8080

myweb-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: myweb
spec:
  type: NodePort
  ports:
    - port: 8080
      nodePort: 30001
  selector:
    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

六.原理

相关推荐
drebander4 小时前
Docker 安全基础:权限、用户、隔离机制
安全·docker·容器
Marcel1116 小时前
WSL2使用Kind创建K8S集群时出现IPV6网络创建失败
云原生·kubernetes·kind
柳鲲鹏8 小时前
docker push镜像到阿里云
阿里云·docker·容器
猪萌萌9 小时前
关于如何利用群晖Docker搭建Project Zomboid(僵尸毁灭工程)私人服务器-保姆级教程
服务器·docker·容器·僵尸世界大战·游戏服务器搭建
剩下了什么9 小时前
统信服务器操作系统V20 1070A 安装docker新版本26.1.4
运维·docker·容器
呱牛do it11 小时前
【系列专栏】银行IT的云原生架构-云单元架构 12
云原生·金融·架构
zxzy_org11 小时前
轻松上手:2025年微服务教程
算法·微服务·云原生·架构
格桑阿sir13 小时前
Kubernetes控制平面组件:etcd(二)
kubernetes·etcd·raft·mvcc·boltdb·watch机制·treeindex
安全检测中14 小时前
关于docker及容器的了解学习记录
学习·docker·容器
power-辰南14 小时前
微服务线上发布稳定性解决方案
微服务·云原生·架构·无损上线·无损下线