k8s部署学习

8s的架构

一个kubernetes集群主要是由控制节点(master)、工作节点(node)构成,每个节点上都会安装不同的组件

1 master:集群的控制平面,负责集群的决策

ApiServer : 资源操作的唯一入口,接收用户输入的命令,提供认证、授权、API注册和发现等机制

Scheduler : 负责集群资源调度,按照预定的调度策略将Pod调度到相应的node节点上

ControllerManager : 负责维护集群的状态,比如程序部署安排、故障检测、自动扩展、滚动更新等

Etcd :负责存储集群中各种资源对象的信息

2 node:集群的数据平面,负责为容器提供运行环境

kubelet:负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理

Container runtime:负责镜像管理以及Pod和容器的真正运行(CRI)

kube-proxy:负责为Service提供cluster内部的服务发现和负载均衡

说明

一台虚拟机做master,IP为172.25.254.100

两台为node节点,IP为172.25.254.10和172.25.254.20

hub仓库的IP为172.25.254.200

安装k8s部署工具

在k8s-master上安装kubelet,kubeadm,kubectl

下载并安装docker

剩余可直接传输

在三台主机上配置解析

测试

配置认证

cpp 复制代码
[root@k8smaster ~]# mkdir -p /etc/docker/certs.d/reg.mqw.org/
 
  
cpp 复制代码
[root@hub harbor]# scp /data/certs/mqw.org.crt root@172.25.254.100:/etc/docker/certs.d/reg.mqw.org/ca.crt
 
root@172.25.254.100's password: 
mqw.org.crt                           100% 2114     1.5MB/s   00:00   

指定docker默认的dockers仓库

cpp 复制代码
[root@k8smaster ~]# cd /etc/docker/
[root@k8smaster docker]# vim daemon.json
 
 
{  "registry-mirrors": ["https://reg.mqw.org"]  }

启动docker

激活

查看docker info

在两台主机加载模块

启动docker

配置k8s

安装插件,三台都要

安装

指定网络插件

启动

启动kubelet

在master节点拉取K8S所需镜像

cpp 复制代码
[root@k8smaster ~]# kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.30.0 --cri-socket=unix:///var/run/cri-dockerd.sock

在hub创建一个名为k8s的项目

打上标签后上传

cpp 复制代码
[root@k8smaster ~]# docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.30.0 reg.mqw.org/k8s/kube-apiserver:v1.30.0
 
[root@k8smaster ~]# docker push reg.mqw.org/k8s/kube-apiserver:v1.30.0
 
[root@k8smaster ~]# docker tag registry.aliyuncs.com/google_containers/kube-controller-manager:v1.30.0 reg.mqw.org/k8s/kube-controller-manager:v1.30.0
 
[root@k8smaster ~]# docker push reg.mqw.org/k8s/kube-controller-manager:v1.30.0
 
[root@k8smaster ~]# docker tag registry.aliyuncs.com/google_containers/kube-scheduler:v1.30.0 reg.mqw.org/k8s/kube-scheduler:v1.30.0
 
[root@k8smaster ~]# docker push reg.mqw.org/k8s/kube-scheduler:v1.30.0
 
[root@k8smaster ~]# docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.30.0 reg.mqw.org/k8s/kube-proxy:v1.30.0
 
[root@k8smaster ~]# docker push reg.mqw.org/k8s/kube-proxy:v1.30.0
 
[root@k8smaster ~]# docker tag registry.aliyuncs.com/google_containers/coredns:v1.11.3 reg.mqw.org/k8s/coredns:v1.11.3
 
[root@k8smaster ~]# docker push reg.mqw.org/k8s/coredns:v1.11.3
 
[root@k8smaster ~]# docker tag registry.aliyuncs.com/google_containers/pause:3.9 reg.mqw.org/k8s/pause:3.9
 
[root@k8smaster ~]# docker push reg.mqw.org/k8s/pause:3.9
 
[root@k8smaster ~]# docker tag  registry.aliyuncs.com/google_containers/etcd:3.5.15-0 reg.mqw.org/k8s/etcd:3.5.15-0
 
[root@k8smaster ~]# docker push reg.mqw.org/k8s/etcd:3.5.15-0

上传结果

集群

配置

指定集群变量

cpp 复制代码
[root@k8smaster ~]# echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile 
[root@k8smaster ~]# source ~/.bash_profile 

设置补齐功能

cpp 复制代码
[root@k8smaster ~]#  echo "source <(kubectl completion bash)" >> ~/.bashrc
[root@k8smaster ~]#  source  ~/.bashrc

加载网络插件

创建项目后上传

cpp 复制代码
[root@k8smaster ~]# docker tag flannel/flannel:v0.25.5 reg.mqw.org/flannel/flannel:v0.25.5
 
[root@k8smaster ~]# docker push reg.mqw.org/flannel/flannel:v0.25.5
 
[root@k8smaster ~]# docker tag flannel/flannel-cni-plugin:v1.5.1-flannel1 reg.mqw.org/flannel/flannel-cni-plugin:v1.5.1-flannel1
 
[root@k8smaster ~]# docker push  reg.mqw.org/flannel/flannel-cni-plugin:v1.5.1-flannel1

显示

安装flannel网络插件

cpp 复制代码
[root@k8smaster ~]# kubectl apply -f kube-flannel.yml
namespace/kube-flannel created
serviceaccount/flannel created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds created

复制集群token到node中执行,即可加入

k8s-node和2 上复制完,在最后添加--cri-socket=unix:///var/run/cri-dockerd.sock

两台主机上启动服务i

查看是否配置成功

测试

相关推荐
Answer1st12 小时前
【嵌入式学习】嵌入式原理知识-DMA(九)
学习
传奇开心果编程12 小时前
【ArkUI进阶练中学】第11课:安全与合规进阶
学习·ui·华为·harmonyos
寻林写彡14 小时前
01| 裸机部署 K8S:从零搭建生产可用集群
云原生·kubernetes
Mr_Macallon14 小时前
C++回顾(基础)(01)
c语言·开发语言·c++·学习
sunoo-22915 小时前
【ARM嵌入式学习笔记第十天】i.MX6ULL eLCDIF控制器驱动RGB LCD全解析(硬件原理+寄存器配置+裸机代码)
arm开发·笔记·学习
kaiyou202616 小时前
用户研究岗秋招,统计分析能力怎么学习和证明?
数据库·python·学习
知识分享小能手16 小时前
C++ 学习教程,从入门到精通,string类和标准模板库 — 完整知识点详解(16)
开发语言·c++·学习
更深兼春远17 小时前
第2篇:Dify 部署保姆级教程:用 Docker跑起来
docker·容器·dify
inferno17 小时前
SVN学习笔记(二)
笔记·学习·svn
传奇开心果编程17 小时前
【ArkUI进阶练中学】第12课:应用架构演进与遗留系统迁移
学习·ui·华为·harmonyos