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

六.原理

相关推荐
武子康1 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
秋播1 天前
国内本地WSL2编译rancher源码
云原生
小猿姐3 天前
MySQL Top 10 热点问题 AI 运维实战:从内核诊断到云原生运维
mysql·云原生·aiops
阿里云云原生4 天前
深入内核:拆解 OpenTelemetry eBPF 探针如何优雅地“透视”多语言微服务?
云原生
2601_961875244 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant
java_cj4 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
程序员老赵4 天前
服务器没有桌面?Docker 跑个 Chrome,浏览器就能远程用
docker·容器·devops
正经教主4 天前
【docker基础】 第八周:容器监控与应用更新策略
运维·docker·容器
kiros_wang4 天前
Docker 使用完整指南
运维·docker·容器
正经教主4 天前
【docker基础】第九周:Docker安全与镜像优化
运维·docker·容器