k8s1.26安装和组件原理
一、k8s1.26环境准备
k-master 192.168.50.100
k-node1 192.168.50.101
k-node2 192.168.50.102
安装docker 默认会安装containerd
config.toml里面需要配置
先要安装k8s才会有crictl命令
安装calico网络插件
v3.25
下载2个文件
修改自定义的文件,改为pod的dir网段才行
kubeadm init --apiserver-advertise-address=192.168.200.10 --kubernetes-version=v1.23.0 --service-cidr=10.96.0.0/16 --pod-network-cidr=10.244.0.0/16 --image-repository=registry.aliyuncs.com/google_containers
1、前置工作
1、关掉防火墙和selinux
systemctl disable firewalld.service --now
setenforce 0
vim /etc/selinux/config
2、关闭swap交换分区
swapoff -a
3、打开linux内核工具
vim /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
sysctl -p /etc/sysctl.d/k8s.conf
2、重要工作
1、配置docker源和kubernetes源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
2、安装docker-ce
yum -y install docker-ce
systemctl enable docker --now
3、修改config.toml文件
containerd config default > /etc/containerd/config.toml
vim config.toml
SystemdCgroup = true
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"
# 配置拉取镜像策略
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"] # 拉取registry.k8s.io镜像从下面网站拉取
endpoint = ["https://registry-k8s-io.mirrors.sjtug.sjtu.edu.cn"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"] # 拉取docker.io镜像也是这样的
endpoint = ["https://自己网站"]
systemctl restart containerd
systemctl enable containerd
4、安装kubelet,kubeadm,kubectl
yum -y install kubelet-1.26.0 kubeadm-1.26.0 kubectl-1.26.0
# 启动kubelet
systemctl enable kubelet --now
5、设置容器运行时
crictl config runtime-endpoint unix:///var/run/containerd/containerd.sock
crictl config image-endpoint unix:///var/run/containerd/containerd.sock
3、只在master上面做
1、kubernetes初始化
kubeadm init --apiserver-advertise-address=192.168.50.100 \
--kubernetes-version=v1.26.0 \
--pod-network-cidr=10.244.0.0/16 \
--image-repository=registry.aliyuncs.com/google_containers
--image-repository 拉取控制平面镜像的仓库,etcd,api-server等等
--apiserver-advertise-address master的地址
--pod-network-cid pod的网段
2、加入node节点
- node1,node2上面需要执行
[root@k-node1 ~]# kubeadm join 192.168.50.100:6443 --token q6tybk.47n9q7zymfpxeufi --discovery-token-ca-cert-hash sha256:d949c3809ba2f36425000119f9e7c7e29f3715aebd568b91eb8af309a86de09a
[preflight] Running pre-flight checks
[WARNING FileExisting-tc]: tc not found in system path
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...
This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.
Run 'kubectl get nodes' on the control-plane to see this node join the cluster.
[root@k-node2 containerd]# kubeadm join 192.168.50.100:6443 --token q6tybk.47n9q7zymfpxeufi --discovery-token-ca-cert-hash sha256:d949c3809ba2f36425000119f9e7c7e29f3715aebd568b91eb8af309a86de09a
3、安装calico网络插件
下载calico网络插件yaml文件
安装的版本是v3.25.2
https://archive-os-3-25.netlify.app/calico/3.25/getting-started/kubernetes/quickstart
下载2个yaml文件
# 直接进行应用
kubectl create -f tigera-operator.yaml
# 修改ip地址即可,为pod的网段地址即可
kubectl create -f custom-resources.yaml
4、查看node状态和创建pod测试网络
[root@k-master ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
k-master Ready control-plane 69m v1.26.0
k-node1 Ready <none> 68m v1.26.0
k-node2 Ready <none> 67m v1.26.0
[root@k-master ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
centos8-demo 1/1 Running 0 14m
[root@k-master ~]# kubectl exec -ti centos8-demo -- /bin/bash
[root@centos8-demo /]# ping qq.com
PING qq.com (113.108.81.189) 56(84) bytes of data.
64 bytes from 113.108.81.189 (113.108.81.189): icmp_seq=1 ttl=127 time=44.10 ms
5、补全功能
echo 'source <(kubectl completion bash)' /root/.bashrc
二、kubernets组件
1、api-server
接收外部请求的组件
集群的唯一入口,都需要通过这个来进行通信
2、客户端kubectl
命令行工具
执行命令后会被api-server捕捉到
3、sceduler组件
- 负责pod调度到哪一个node上面,资源调度
4、ectd组件
键值对数据库
分布式存储数据的
存储集群所有状态信息
5、controller-manager组件
- 管理各种控制器
6、kubelet组件
每一个节点上面都有这个组件
负责pod的创建,等等操作
周期性的获取pod信息,返回给api-server
健康检查等等
7、kube-proxy组件
网络组件
实现pod之间的通信,pod和外部之间的通信
通过这个组件创建svc,从而实现了外部访问pod通信
三、kubernetes资源
1、pod
- 一个pod可以有一个容器或者多个容器
k8s1.26安装和组件原理的更多相关文章
- Installshield自动安装IIS组件
原文:Installshield自动安装IIS组件 一. 工程类型:IS2010 installscript 二.原理: 1. XP和 Server2003系统:由于系统默认没有自带IIS组件,一般情 ...
- Linux安装ftp组件过程
1 安装vsftpd组件 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件. [root@bogon ~]# yum -y install vsftpd 2 ...
- linux安装ftp组件
1 安装vsftpd组件 linux系统安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件. [root@bogon ~]# yum -y install v ...
- android应用程序的安装方式与原理
android应用程序的安装方式与原理 四种安装方式: 1.系统应用安装――开机时完成,没有安装界面 2.网络下载应用安装――通过market应用完成,没有安装界面 3.ADB工具安装――没有安装界面 ...
- SqlServer 由于未在SqlServer的此实例上安装复制组件解决方法
sqlserver2005在复制订阅时出现: “由于未在SqlServer的此实例上安装复制组件,Microsoft SQL server 无法访问这些组件,请参阅SQL Server……” 解决方法 ...
- Windows Xp Home Edition 安装IIS组件
问题描述: 在虚拟机(操作系统是Windows Xp Home Edition)中安装Sql Server 2005的时候警告缺少IIS相关组件,控制面板"添加/删除组件"中也没有 ...
- 制作PHP安装程序的原理和步骤56
制作PHP安装程序的原理和步骤56 1.制作PHP安装程序的原理和步骤检查目录或文件的权限----修改或填加配置文件---检查配置文件正 确性---导入数据库----锁定或删除安装文件 原理: 其实P ...
- PHP网站安装程序的原理及代码
原文:PHP网站安装程序的原理及代码 原理: 其实PHP程序的安装原理无非就是将数据库结构和内容导入到相应的数据库中,从这个过程中重新配置连接数据库的参数和文件,为了保证不被别人恶意使用安装文件,当安 ...
- Linux下的暴力密码在线破解工具Hydra安装及其组件安装-使用
Linux下的暴力密码在线破解工具Hydra安装及其组件安装-使用 hydra可以破解: http://www.thc.org/thc-hydra,可支持AFP, Cisco AAA, Cisco a ...
- CentOS安装Ruby组件
ruby安装#安装ruby组件yum install ruby ruby-irb ruby-devel rubygems rpm-build -y#安装Apache服务器yum install htt ...
随机推荐
- SpringIntegrationRamble
目录 Why SpringIntegration Background Consolidate Architecture ESB service Popular Solutions Getting S ...
- pikachu靶场的详细搭建,附pikachu靶场源码下载链接
一.安装好phpstudy 首先搭建pikachu靶场的第一步,先是安装好phpstudy,这是一款集成环境的软件,里面包含了Apache,FTP,MySQL,Nginx.phpstudy的官方网址: ...
- 代码随想录第二十天 | Leecode 235. 二叉搜索树的最近公共祖先 、 701.二叉搜索树中的插入操作 、450.删除二叉搜索树中的节点
Leecode 235. 二叉搜索树的最近公共祖先 题目描述 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p. ...
- 痞子衡嵌入式:不处理i.MXRT1064片内Flash的RESET#引脚可能会导致无法启动或程序跑飞
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1064片内Flash的RESET#引脚对程序启动和运行的影响. 上一篇文章 <i.MXRT1024/1064片内4M ...
- HeapSter部署
pod资源需求,资源限制 Requests:需求,最低保障: Limits: 限制,硬限制: Limits >= request CPU: 1颗虚拟CPU=1000 毫核心 millicores ...
- vue3 基础-应用app和组件基本概念
这篇主要对 vue 最基础的应用程序 Application 和组件 Components 进行一个简要和直观的认知, 具体要分析的代码如下: <!DOCTYPE html> <ht ...
- C# 从PDF文档中提取图片
当 PDF 文件中包含有价值的图片,如艺术画作.设计素材.报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,避免每次都要从 PDF 中查找.本文将介绍如何使用C#通过代码 ...
- Flutter内嵌H5页面与前端通信:实现无缝交互的技术浅析
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- JS中常用方法
数组 splice: splice() 方法的第一个参数是起始索引,第二个参数是要删除的元素数量(可以为0),然后可以传递更多的参数作为要插入的新元素. 限制删除的数量: const arr = [1 ...
- MySQL8.0安装与环境配置win10
本次安装笔者借鉴了n篇前辈的文章,如有冒犯,请指正 https://blog.csdn.net/qq_20788055/article/details/80372577 https://blog.cs ...