版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Kubernetes集群-基础环境目录01任务项目实施节点环境准备02任务学习目标【知识目标】●了解ipvs基本知识;●
掌握集群基础环境配置要点
【技能目标】●
能够基于搭建过程中出现的问题进行基础排错。1节点环境准备初始化实验环境1角色IP地址主机名安装的组件控制节点0masterapiserver,controller-manager,scheduler,etcd,kube-proxy,docker,flannel工作节点0node1kubelet,kube-proxy,docker,flannel工作节点0node2kubelet,kube-proxy,docker,flannel节点规划初始化实验环境1环境准备和说明软件名称软件版本LinuxOSCentOSLinuxrelease7.7.1908(Core)Dockerdocker-ce-20.10.6Kubernetes1.20.6Kubeadmkubeadm-1.20.6-0.x86_64etcd3.3.10flannelv3.18.0初始化实验环境1环境准备和说明推荐配置:4vcpu+4Gmemory+50Gdisk。最低配置:2vcpu+2Gmemory+50Gdisk网络:NAT本次实验配置如下2案例实施案例实施按照部署要求,修改三个节点的IP地址,以master节点为例2配置静态IP[root@localhost~]#vim/etc/sysconfig/network-scripts/ifcfg-ens33TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=static。。。ONBOOT=yesIPADDR=0PREFIX=24GATEWAY=DNS1=14修改配置文件之后需要重启网络服务才能使配置生效[root@localhost~]#systemctlrestartnetwork案例实施2配置机器主机名在0上执行如下:[root@localhost~]#hostnamectlset-hostnamemaster&&bash在0上执行如下:[root@localhost~]#hostnamectlset-hostnamenode1&&bash在0上执行如下:[root@localhost~]#hostnamectlset-hostnamenode2&&bash案例实施2配置主机hosts文件3个节点相互之间通过主机名互相访问修改每台机器的/etc/hosts,增加如下3行:0master0node10node2案例实施2关闭交换分区swapKubernetes为了能提升性能,默认不允许使用交换分区的。Kubeadm初始化的时候会检swap是否关闭,如果没关闭,那就初始化失败。如果不想要关闭交换分区,安装Kubernetes的时候可以指定--ignore-preflight-errors=Swap来解决。案例实施2关闭交换分区swap(1)临时关闭[root@master~]#swapoff-a[root@node1~]#swapoff-a[root@node2~]#swapoff-a案例实施2关闭交换分区swap(2)永久关闭[root@master~]#vi/etc/fstab#/etc/fstab#CreatedbyanacondaonMonJul2411:15:142023#Accessiblefilesystems,byreference,aremaintainedunder'/dev/disk'#Seemanpagesfstab(5),findfs(8),mount(8)and/orblkid(8)formoreinfo#UUID=ab12c361-6848-4035-bc98-bf8a242efa2a/xfsdefaults00UUID=628bfe49-1b47-40c7-9182-45383cfe840b/bootxfsdefaults00#UUID=5bfdd074-35c2-40ac-a57f-b41de7d81dd5swapswapdefaults00
案例实施2关闭firewalld防火墙[root@master~]#systemctlstopfirewalld;systemctldisablefirewalld[root@node1~]#systemctlstopfirewalld;systemctldisablefirewalld[root@node2~]#systemctlstopfirewalld;systemctldisablefirewalld案例实施2关闭selinux三节点做同样配置,以master节点为例[root@master~]#sed-i's/SELINUX=enforcing/SELINUX=disabled/g'/etc/selinux/config修改selinux配置文件之后,重启机器,selinux配置才能永久生效。[root@master~]#getenforceDisabled#显示Disabled说明selinux已经关案例实施2开启ipvs配置ipvs模块,三个节点均需配置cat>/etc/sysconfig/modules/ipvs.modules<<EOF#!/bin/bashmodprobe--br_netfiltermodprobe--ip_vsmodprobe--ip_vs_rrmodprobe--ip_vs_wrrmodprobe--ip_vs_shmodprobe--nf_conntrack_ipv4EOF案例实施2开启ipvschmod755/etc/sysconfig/modules/ipvs.modules&&\bash/etc/sysconfig/modules/ipvs.modules&&\lsmod|grep-E"ip_vs|nf_conntrack_ipv4"输出结果如下:ThankYOU!Kubernetes集群-安装Docker目录01任务安装Docker服务环境准备02任务学习目标【知识目标】●了解内核参数;●
掌握yum的配置。【技能目标】●
能够安装Docker服务。1环境准备docker安装环境准备1修改机器内核参数为什么开启net.bridge.bridge-nf-call-iptables内核参数?在centos下安装docker,执行dockerinfo出现如下警告:WARNING:bridge-nf-call-iptablesisdisabledWARNING:bridge-nf-call-ip6tablesisdisabled解决办法:vim/etc/sysctl.d/Kubernetes.confnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=11修改机器内核参数为什么要开启net.ipv4.ip_forward参数?kubeadm初始化Kubernetes报错:解决办法:vim/etc/sysctl.d/Kubernetes.confnet.ipv4.ip_forward=1docker安装环境准备1修改机器内核参数三节点执行相同配置,以master节点为例[root@master~]#modprobebr_netfilter[root@master~]#echo"modprobebr_netfilter">>/etc/profile[root@master~]#cat>/etc/sysctl.d/Kubernetes.conf<<EOFnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=1net.ipv4.ip_forward=1EOF[root@master~]#sysctl-p/etc/sysctl.d/Kubernetes.confdocker安装环境准备1配置yum源三节点配置阿里云centos的YUM源,以Master节点为例[root@master~]#mv/etc/yum.repos.d/*/home[root@master~]#curl-o/etc/yum.repos.d/CentOS-Base.repo/repo/Centos-7.repodocker安装环境准备1配置yum源三节点配置国内阿里云docker的YUM源,以Master节点为例[root@master~]#yuminstall-yyum-utils[root@master~]#yum-config-manager--add-repo/docker-ce/linux/centos/docker-ce.repo[root@master~]#sed-i's++/docker-ce+'/etc/yum.repos.d/docker-ce.repodocker安装环境准备2安装docker服务安装docker服务各节点部署docker服务,以Master节点为例[root@master~]#yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2[root@master~]#yuminstalldocker-ce-20.10.6docker-ce-cli-20.10.6containerd.io-y[root@master~]#systemctlstartdocker&&systemctlenabledocker.service2安装docker-ce安装docker服务[root@master~]#cat>/etc/docker/daemon.json<<EOF{"exec-opts":["native.cgroupdriver=systemd"],"log-driver":"json-file","log-opts":{"max-size":"100m","max-file":"10"},"oom-score-adjust":-1000,"registry-mirrors":[""],"storage-driver":"overlay2","storage-opts":["overlay2.override_kernel_check=true"],"live-restore":false}EOF2配置镜像加速器和驱动[root@master~]#systemctldaemon-reload[root@master~]#systemctlrestartdocker[root@master~]#systemctlstatusdocker以master节点为例,node1和node2节点重复上述操作。ThankYOU!Kubernetes集群部署1目录01任务初始化集群软件包准备02任务学习目标【知识目标】●了解kubeadm工具的使用方法;●
掌握Kubernetes集群的初始化。【技能目标】●
能够利用kubeadm初始化Kubernetes集群;●
能够基于搭建过程中出现的问题进行基础排错。1软件包准备1配置yum源配置安装Kubernetes组件需要的阿里云的YUM源cat<<EOF>/etc/yum.repos.d/Kubernetes.repo[Kubernetes]name=Kubernetesbaseurl=/Kubernetes/yum/repos/Kubernetes-el7-x86_64/enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=/Kubernetes/yum/doc/yum-key.gpg/Kubernetes/yum/doc/rpm-package-key.gpgEOF软件包准备1安装软件包三节点安装初始化Kubernetes需要的软件包,并启动kubelet服务,设置开机自启,以master节点为例,代码如下:[root@master~]#yuminstall-ykubelet-1.20.6kubeadm-1.20.6kubectl-1.20.6[root@master~]#systemctlenablekubelet[root@master~]#systemctlstartkubelet软件包准备1安装软件包查看kubelet服务状态:[root@master~]#systemctlstatuskubelet输出结果如下:软件包准备2初始化集群初始化集群(1)使用kubeadm初始化Kubernetes集群[root@master~]#kubeadmconfigprintinit-defaults>kubeadm-config.yaml2初始化控制节点初始化集群(2)编辑kubeadm-config.yaml文件2初始化控制节点vim/root/kubeadm-config.yamlapiVersion:kubeadm.Kubernetes.io/v1beta2bootstrapTokens:-groups:-system:bootstrappers:kubeadm:default-node-tokentoken:abcdef.0123456789abcdefttl:24h0m0susages:-signing-authenticationkind:InitConfigurationlocalAPIEndpoint:advertiseAddress:0#修改为master节点IP地址bindPort:6443nodeRegistration:criSocket:/var/run/dockershim.sockname:mastertaints:-effect:NoSchedulekey:node-role.Kubernetes.io/master初始化集群(2)编辑kubeadm-config.yaml文件2初始化控制节点apiServer:timeoutForControlPlane:4m0sapiVersion:kubeadm.Kubernetes.io/v1beta2certificatesDir:/etc/Kubernetes/pkiclusterName:KubernetescontrollerManager:{}dns:type:CoreDNSetcd:local:dataDir:/var/lib/etcdimageRepository:/google_containerskind:ClusterConfigurationKubernetesVersion:v1.20.6#版本修改为我们预装的版本networking:dnsDomain:cluster.localpodSubnet:/16#添加pod子网serviceSubnet:/12scheduler:{}初始化集群(3)通过kubeadm-config.yaml安装KUBERNETES[root@master~]#kubeadminit--configkubeadm-config.yaml2初始化控制节点初始化集群安装成功,输出结果如下:2初始化控制节点本行代码需记录,用于node节点加入集群初始化集群2初始化控制节点①[init]:指定版本进行初始化操作。②[preflight]:初始化前的检查和下载所需要的Docker镜像文件。。③[certs]:生成Kubernetes使用的证书,存放在/etc/kubernetes/pki目录中。④[kubeconfig]:生成KubeConfig文件,存放在/etc/kubernetes目录中,组件之间通信需要使用对应文件。⑤[kubelet-start]:生成Kubelet的配置文件/var/lib/kubelet/config.yaml,没有这个文件Kubelet无法启动,所以初始化之前的Kubelet实际上启动失败。⑥[control-plane]:使用/etc/kubernetes/manifest目录下的YAML文件,安装Master组件。⑦[etcd]:使用/etc/kubernetes/manifest/etcd.yaml安装Etcd服务。初始化集群2初始化控制节点⑧[wait-control-plane]:等待control-plan部署的Master组件启动。⑨[apiclient]:检查Master组件服务状态。⑩[upload-config]:更新配置。⑪[kubelet]:使用configMap配置Kubelet。⑫[upload-certs]:多MASTER时使用,可追加控制平台⑬[mark-control-plane]:为当前节点打标签,打了角色Master,和不可调度标签,这样默认就不会使用Master节点来运行Pod。⑭[bootstrap-token]:生成的Token需要记录下来,后面使用kubeadmjoin命令往集群中添加节点时会用到。⑮[addons]:安装附加组件CoreDNS和kube-proxy。初始化集群[root@master~]#mkdir-p$HOME/.kube[root@master~]#sudocp-i/etc/Kubernetes/admin.conf$HOME/.kube/config[root@master~]#sudochown$(id-u):$(id-g)$HOME/.kube/config[root@master~]#kubectlgetnodesNAMESTATUS
ROLES
AGE
VERSIONmasterNotReadycontrol-plane,master60sv1.20.62配置kubectl工具ThankYOU!Kubernetes集群部署2目录01任务添加工作节点安装网络插件02任务学习目标【知识目标】●
掌握Kubernetes网络插件的使用;●
掌握node节点的添加方法。【技能目标】●
能够利用kubeadm搭建Kubernetes集群;●
能够基于搭建过程中出现的问题进行基础排错。1安装网络插件安装网络插件2k8s网络模型多个开源组件支持容器网络模型:Flannel、OpenvSwitch、Calico等安装网络插件2Calico网络
Calico可创建并管理一个3层平面网络,为每个工作负载分配一个完全可路由的IP地址,而没有采用overlay网络做报文的转发。
这样,每个容器都通过IP直接通信,中间通过路由转发找到对方,所有工作负载可以无需IP封装或网络地址转换就可进行通信。在这个过程中,容器所在的节点类似于传统的路由器,提供了路由查找的功能。
要想路由工作能够正常,每个虚拟路由器(容器所在的主机节点)必须有某种方法知道整个集群的路由信息,calico采用的是BGP路由协议来完成Node上Pod间通信;在需要使用overlay网络的环境中,Calico提供了IP-in-IP隧道技术,或者也可以与flannel等其他overlay网络配合使用。安装网络插件2Calico网络Calico还提供网络安全规则的动态配置:基于iptables提供了丰富的网络策略,实现了k8s的NetworkPolicy策略,提供容器间网络可达性限制的功能。使用Calico提供的简单策略语言,就可以实现对容器、虚拟机工作负载和裸机主机各节点之间通信的细粒度控制。安装网络插件2Flannel网络Flannel由CoreOS开发,用于解决容器集群跨主机通讯的覆盖网络(overlaynetwork),它的主要思路是:预先留出一个网段,每个主机使用其中一部分,然后每个容器被分配不同的ip;让所有的容器认为大家在同一个直连的网络。Flannel通过在每一个节点上启动一个叫flannel的进程,负责为每一个节点上的子网划分,并将相关配置信息(如各节点的子网网段、外部IP等)保存到etcd中,而具体的网络报文转发交给backend实现。安装网络插件2Flannel与calicoflannel部署简单,功能比较少,不具备复杂网络的配置能力;calico功能更为全面,不仅提供主机和pod之间的网络连接,还涉及网络安全和管理,Calico还可以与服务网格Istio集成;flannel实现的是网络通信;calico的特性是在pod之间的隔离,纯三层的转发,中间没有任何的NAT和overlay,转发效率最好。安装网络插件2Flannel与calico比较小而简单的集群使用flannel;网络设备多、配置策略多则使用calico。安装网络插件上传kube-flannel.yml到master节点上,使用yaml文件安装Flannel网络插件。自行下载地址:/flannel-io/flannel[root@master~]#kubectlapply-fkube-flannel.yml[root@master~]#kubectlgetpods-nkube-system1安装flannel网络安装网络插件输出结果如图下所示,说明网络插件flannel已经正常工作。1安装flannel网络2添加node节点添加node节点默认的token有效期为24小时,当过期之后,该token就不能用了,这时可以使用如下的命令创建token:[root@master~]#kubeadmtokencreate--print-join-c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东深圳市龙岗区龙城街道绿景大公馆幼儿园招聘1人笔试备考试题及答案解析
- 实验汇报内容规划【演示文档课件】
- 2025 八年级生物上册收集和分析超分辨率显微镜的应用资料课件
- 2026及未来5年中国智能家居行业市场现状调查及投资前景研判报告
- 2026及未来5年中国斜交工程胎行业市场全景调研及发展前景研判报告
- 2026及未来5年中国泰式按摩行业市场研究分析及投资战略规划报告
- 工业电弧炉变压器项目可行性研究报告
- 2026及未来5年中国翻译机构行业市场运营态势及未来趋势研判报告
- 连锁餐饮新品研发中心(川湘菜系)建设项目可行性研究报告
- 印章证照使用管理流程手册
- 2026年湖南水利水电职业技术学院单招职业倾向性测试必刷测试卷附答案
- 湖南高速铁路职业技术学院2024单招试卷
- 辽宁省大连市名校2026届八年级物理第一学期期末监测试题含解析
- 2025年智慧商业行业分析报告及未来发展趋势预测
- 《机械基础(第七版)》课件(中)
- 2025年健康服务与管理专升本健康管理试卷(含答案)
- 2025年党政领导干部选拔任用考试模拟试卷及答案(共两套)
- 企业年度预算制定与执行分析模板
- 2025年云南职教高考真题及答案
- 汽车维修基础知识培训总结
- DB44∕T 2544-2024 黑木相思栽培技术规程
评论
0/150
提交评论