06:原生云K8S解密|K8S集群安装部署|K8S网络插件

原生云K8S解密|K8S集群安装部署|K8S网络插件

  • K8S
    • K8S集群架构图解
  • K8S部署
    • 仓库初始化
    • kube-master安装
    • 计算节点的安装
      • token管理
    • 配置flannel网络(master主机操作)

K8S

在这里插入图片描述
有大量夸主机的容器需要管理,快速部署应用,快速扩展应用,无缝对接新的应用功能,节省资源,优化硬件资源的使用。

K8S集群架构图解

核心角色:
master (管理节点)
node(计算节点)
image(镜像仓库)
在这里插入图片描述
在这里插入图片描述

K8S部署

仓库初始化

  1. 云主机
    在这里插入图片描述
  2. 安装仓库服务
[root@registry ~]# yum makecache # 更新缓存
[root@registry ~]# yum install -y docker-distrubution
[root@registry ~]# systemctl enable --now docker-distribution
  1. 使用脚本初始化仓库
# 拷贝云盘myos目录到仓库服务器
[root@registry ~]# cd myos
[root@registry ~]# chmod 755 init-img.sh
[root@registry ~]# ./init-img.sh
[root@registry ~]# curl http://192.168.1.100:5000/v2/myos/tags/list
{"name":"myos","tags":["nginx","php-fpm","v1804","httpd"]}

kube-master安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
镜像导入私有仓库

# 把云盘 kubernetes/v1.17.6/base-images中的镜像拷贝到master
[root@master ~]# cd base-images/
[root@master base-images]# for i in *.tar.gz;do docker load -i $(i);done
[root@master base-images]# docker images 
[root@master base-images]# docker images | awk '$2!="TAG"{print $1,$2}'|while read _f _v:do
docker tar ${_f}:${_v} 192.168.1.100:5000/${_f##*/}:${_v};
docker push 192.168.1.100:5000/${_f##*/}:${_v};
docker rmi ${_f}:${_v};
done
# 查看验证
[root@master base-images]# curl http://192.168.1.100:5000/v2/_catalog

tab键设置

[root@master ~]# kubectl completion bash > /etc/bash_completion.d/kubectl
[root@master ~]# kubeadm completion bash > /etc/bash_completion.d/kubeadm
[root@master ~]# exit # 退出系统

安装IPVS代理软件包

[root@master ~]# yum install -y ipvsadm ipset # 做成LVS集群

配置master主机环境 首先要开启网桥设备 可以将各容器之间进行通信
在这里插入图片描述

[root@master ~]# vim /etc/hosts
192.168.1.21 master
192.168.1.31 node-0001
192.168.1.32 node-0002
192.168.1.33 node-0003
192.168.1.100 registry
[root@master ~]# 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
[root@master ~]# modprobe br_netfilter
[root@master ~]# sysctl --system

使用kubeadm部署
应答文件在云盘 kubernetes/v1.17.6/config目录

[root@master ~]# mkdir init ;cd init 
# 拷贝kubeadm-init.yaml 到master云主机 init目录下
[root@master init]# kubeadm init --config=kubeadm-init.yaml | tee master-init.log # tee生成日志文件
# 按照提示执行命令
[root@master init]# mkdir -p $HOME/.kube
[root@master init]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master init]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

验证结果

[root@master ~]# kubectl version
[root@master ~]# kubectl get componentstatuses

在这里插入图片描述
kubeadm 命令
config: 配置管理命令
help: 查看帮助
init: 初始命令
join: node加入集群的命令
reset: 还原状态命令
token: token凭证管理命令
version:查看版本

计算节点的安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

token管理

  • 如何获取token
  • 管理token使用kubeadm token 指令
# 列出token
kubeadm token list
# 删除token
kubeadm token delete <token>
# 创建token
kubeadm token create --ttl=0 --print-join-command # 无限期 打印安装命令
# 获取token_hash
# 1、查看安装日志  2、在创建token时候显示  3、使用 openssl 计算得到
[root@master ~]# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt |openssl rsa -pubin -outform der |openssl dgst -sha256 -hex

在这里插入图片描述

[root@ecs-proxy 5]# cp -a kubernetes/nodejoin /root/
[root@ecs-proxy 5]# cd ~root/nodejoin/
[root@ecs-proxy nodejoin]# vim nodeinit.yaml
... ...vars:master: '192.168.1.50:6443'token: '这里改成你自己的token'token_hash: 'sha256:这里改成你自己的token ca hash'
... ...
[root@ecs-proxy node-install]# ansible-playbook nodeinit.yaml

验证安装

[root@master ~]# kubectl get nodes
NAME        STATUS     ROLES    AGE     VERSION
master      NotReady   master   130m    v1.22.5
node-0001   NotReady   <none>   2m14s   v1.22.5
node-0002   NotReady   <none>   2m15s   v1.22.5
node-0003   NotReady   <none>   2m9s    v1.22.5

配置flannel网络(master主机操作)

在这里插入图片描述
在这里插入图片描述
上传镜像到私有仓库

# 拷贝 kubernetes/plugins 目录到 master 云主机上
[root@ecs-proxy ~]# rsync -av kubernetes/plugins 192.168.1.50:./
#---------------------------------------------------------------------
[root@master ~]# cd plugins/flannel
[root@master flannel]# docker load -i flannel.tar.xz
[root@master flannel]# docker images|while read i t _;do[[ "${t}" == "TAG" ]] && continue[[ "${i}" =~ ^"registry:5000/".+ ]] && continuedocker tag ${i}:${t} registry:5000/plugins/${i##*/}:${t}docker push registry:5000/plugins/${i##*/}:${t}docker rmi ${i}:${t} registry:5000/plugins/${i##*/}:${t}
done

修改配置文件并安装

[root@master ~]# vim flannel/kube-flannel.yaml
128: "Network": "10.244.0.0/16",        
# 该地址必须与案例3初始化文件 kubeadm-init.yaml 中的 podSubnet 一致
172: image: 192.168.1.100:5000/flannel:v0.12.0-amd64 # 私有仓库
186: image: 192.168.1.100:5000/flannel:v0.12.0-amd64
227行到结尾的所有内容全部删除

验证效果

# 验证节点工作状态
[root@master flannel]# kubectl get nodes
NAME           STATUS    ROLES     AGE     VERSION
master         Ready     master    26h     v1.22.5
node-0001      Ready     <none>    151m    v1.22.5
node-0002      Ready     <none>    152m    v1.22.5
node-0003      Ready     <none>    153m    v1.22.5
# 验证容器工作状态
[root@master ~]# kubectl -n kube-system get pods
NAME                             READY   STATUS    RESTARTS   AGE
coredns-54b6487f4d-t7f9m         1/1     Running   0          64m
coredns-54b6487f4d-v2zbg         1/1     Running   0          64m
etcd-master                      1/1     Running   0          64m
kube-apiserver-master            1/1     Running   0          64m
kube-controller-manager-master   1/1     Running   0          64m
kube-flannel-ds-8x4hq            1/1     Running   0          55m
kube-flannel-ds-c5rkv            1/1     Running   0          55m
kube-flannel-ds-sk2gj            1/1     Running   0          55m
kube-flannel-ds-v26sx            1/1     Running   0          55m
kube-proxy-6gprw                 1/1     Running   0          58m
kube-proxy-6tfn8                 1/1     Running   0          58m
kube-proxy-9t5ln                 1/1     Running   0          58m
kube-proxy-f956k                 1/1     Running   0          64m
kube-scheduler-master            1/1     Running   0          64m

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/450110.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[SWPUCTF 2021 新生赛]ez_unserialize

根据下面的user_agent和Disallow可以判断这个是在robots.txt 我们看的出来这是一个反序列化需要我们adminadmin passwdctf construct 构造方法&#xff0c;当一个对象被创建时调用此方法&#xff0c;不过unserialize()时却不会被调用 destruct 析构方法&#xff0c;PHP将在对象…

虫情监测设备能够自动识别病虫害

TH-CQ3S虫情监测设备的工作原理主要是通过高清摄像头拍摄农田的实时图像&#xff0c;利用图像识别技术对图像中的病虫害进行自动识别。一旦发现病虫害&#xff0c;设备会自动发出警报&#xff0c;并通过手机APP通知农民。农民可以根据设备提供的预测预报&#xff0c;及时采取防…

问题:测风站应设置在平直的巷道中,其前后()范围内不得有障碍物和拐弯等局部阻力。 #微信#媒体

问题&#xff1a;测风站应设置在平直的巷道中&#xff0c;其前后&#xff08;&#xff09;范围内不得有障碍物和拐弯等局部阻力。 参考答案如图所示

软件测试过程中出现随机性缺陷,大家是如何处理的?

软件测试是确保软件产品的质量、功能和可靠性的关键过程。然而&#xff0c;测试并不总是完美无缺的&#xff0c;在开发和测试阶段可能会出现缺陷。缺陷是错误、缺陷或偏离软件的预期行为或要求。在本文中&#xff0c;我们将探讨软件测试中缺陷的常见类型和原因&#xff0c;以及…

两数相加 - 模拟+递归

两数相加原题地址 方法一&#xff1a;模拟 注意到链表的方向是从低位到高位&#xff0c;而做“竖式相加”也是低位到高位。 1 2 3 4 5 ----------- 1 6 8 所以可以用同样的方法来模拟。如果不考虑进位&#xff0c;只需要取出对应位的2个数相加&#xff0c;再尾插到新的…

作业2024/2/3

第二章 引用内联重载 一&#xff0e;选择题 1、适宜采用inline定义函数情况是&#xff08;C&#xff09; A. 函数体含有循环语句 B. 函数体含有递归语句 C. 函数代码少、频繁调用 D. 函数代码多、不常调用 2、假定一个函数为A(int i4, int j0) {;}, 则执行“A (1);”语句…

酷开系统 | 酷开科技智慧AI带你领略神奇的世界

在这个科技日新月异的时代&#xff0c;AI已成为我们生活中不可或缺的一部分。它不仅改变了我们的生活方式&#xff0c;更让我们对未来充满期待。说起酷开系统中智慧AI的强大&#xff0c;着实让人叹为观止。无论是语音识别、数据整理还是语言处理&#xff0c;智慧AI都在不断地突…

本次安装Visual Studio 所用的安装程序不完整。请重新运行VisualStudio安装程序以解决此问题

今天点开VS的时候遇到了这个问题 因为昨天升级到一半电脑关机了&#xff0c;今天打开软件遇到如下错误&#xff0c; 解决办法很简单&#xff0c;找到安装目录进入Installer文件夹 我的目录在C:\Program Files (x86)\Microsoft Visual Studio\Installer 找到vs_installer.exe…

【Springcloud篇】学习笔记六(十一、十二章):Config分布式配置中心、Bus消息总线

第十一章_Config分布式配置中心 1.Config分布式配置中心介绍 1.1分布式系统面临的配置问题 微服务意味着要将单体应用中的业务拆分成一个个子服务&#xff0c;每个服务的粒度相对较小&#xff0c;因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行&…

【C++入门到精通】C++的IO流(输入输出流) [ C++入门 ]

阅读导航 引言一、C语言的输入与输出二、流是什么三、CIO流1. C标准IO流&#xff08;1&#xff09;istream&#xff08;2&#xff09;ostream&#xff08;3&#xff09;iostream&#xff08;4&#xff09;cin 和 cout 2. C文件IO流&#xff08;1&#xff09;ifstream&#xff0…

苹果的ipad可能会缓存vue项目的数据或者pinia数据

如果你发现开发的vue项目在ipad上出现了异常&#xff0c;比如数据出现NaN的情况&#xff0c;或者computed计算属性没生效&#xff0c;或者pinia里面的数据没生效&#xff0c;可能就是ipad浏览器safari缓存了数据导致的&#xff0c;只需要清空safari里面缓存的数据就可以了&…

日志追踪-Tracing

1. 前言 分布式链路跟踪中有两个重要的概念&#xff1a;跟踪&#xff08;trace&#xff09;和 跨度&#xff08; span)。trace 是请求在分布式系统中的整个链路视图&#xff0c;span 则代表整个链路中不同服务内部的视图&#xff0c;span 组合在一起就是整个 trace 的视图在整个…