问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

centos7使用kubeadm安装k8s集群详细教程

发布网友 发布时间:2024-09-12 08:53

我来回答

1个回答

热心网友 时间:2024-09-12 23:34

环境

centos7.6

k8s1.13.4

3台机器1台master2台worker

准备工作关闭swap

执行swapoff临时关闭swap。重启后会失效,若要永久关闭,可以编辑/etc/fstab文件,将其中swap分区一行注释掉

至于为什么关闭这里有个说明:https://github.com/Kubernetes/kubernetes/issues/53533,亦有说影响性能的https://www.zhihu.com/question/374752553

关闭防火墙和selinux

根据文档来的:https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

#将SELinux设置为permissive模式(相当于将其禁用)setenforce0sed-i's/^SELINUX=enforcing$/SELINUX=permissive/'/etc/selinux/config开放端口允许iptables检查桥接流量cat<<EOF|sudotee/etc/modules-load.d/k8s.confbr_netfilterEOFcat<<EOF|sudotee/etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=1EOFsudosysctl--system安装docker(全部节点)安装#安装需要的工具yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#设置源yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#查看有哪些docker版本yumlistdocker-ce--showduplicates|sort-r#安装特定的版本yummakecachefast&&yuminstall-ydocker-ce-18.09.8-3.el7docker-ce-cli-18.09.8-3.el7containerd.io-1.2.0-3.el7#启动dockersystemctldaemon-reload&&systemctlrestartdocker#设置为开机启动systemctlenabledocker.service修改Docker默认存储位置systemctlstopdocker或者servicedockerstop#然后移动整个/var/lib/docker目录到目的路径:mv/var/lib/docker/home/data/dockerln-s/home/data/docker/var/lib/docker#reload配置文件systemctldaemon-reload#重启dockersystemctlrestartdocker.service#设置docker开机启动systemctlenabledocker//当然你也可以通过修改配置文件的方式vim/etc/docker/daemon.json{"registry-mirrors":["http://7e61f7f9.m.daocloud.io"],"graph":"/new-path/docker"}阿里云镜像加速#访问:https://cr.console.aliyun.com/cn-beijing/instances/mirrors#找到加速方法,如:sudomkdir-p/etc/dockersudotee/etc/docker/daemon.json<<-'EOF'{"registry-mirrors":["https://se35r65b.mirror.aliyuncs.com"]}EOFsudosystemctldaemon-reloadsudosystemctlrestartdocker安装kubeadm,kubelet和kubectl(master和worker都装)添加yum仓库创建/etc/yum.repos.d/kubernetes.repo,文件如下内容[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpghttps://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg安装kubeletkubectl和kubeadmyuminstall-ykubelet-1.13.4kubeadm-1.13.4kubectl-1.13.4kubernetes-cni-0.6.0systemctlenable--nowkubelet从阿里云手动摘取镜像

执行kubeadmconfigimagespull查看到gcr.io的连接,如果拉取成功可以进入下一步。如果失败,说明无法访问grc.io。这时需要手动拉取镜像,可以执行下面的脚本,从阿里云拉取相应镜像

#!/bin/bashimages=(kube-apiserver:v1.13.4kube-controller-manager:v1.13.4kube-scheduler:v1.13.4kube-proxy:v1.13.4pause:3.1etcd:3.2.24coredns:1.2.6)forimageNamein${images[@]};dodockerpullregistry.cn-hangzhou.aliyuncs.com/google_containers/$imageNamedockertagregistry.cn-hangzhou.aliyuncs.com/google_containers/$imageNamek8s.gcr.io/$imageNamedone初始化(master)记得加入pod-network-cidr因为后面的网络组件用的是flannelkubeadminit--pod-network-cidr=10.244.0.0/16--image-repositoryregistry.aliyuncs.com/google_containers安装成功提示YourKubernetesmasterhasinitializedsuccessfully!Tostartusingyourcluster,youneedtorunthefollowingasaregularuser:mkdir-p$HOME/.kubesudocp-i/etc/kubernetes/admin.conf$HOME/.kube/configsudochown$(id-u):$(id-g)$HOME/.kube/configYoushouldnowdeployapodnetworktothecluster.Run"kubectlapply-f[podnetwork].yaml"withoneoftheoptionslistedat:https://kubernetes.io/docs/concepts/cluster-administration/addons/Youcannowjoinanynumberofmachinesbyrunningthefollowingoneachnodeasroot:kubeadmjoin10.22.9.162:6443--tokene225cp.14g848dy4vpoas75--discovery-token-ca-cert-hashsha256:aaf9910fb2b94e8c2bc2aea0b2a08538796d8322331561ef1094bebe8a7a790f第一次使用Kubernetes集群所需要的配置命令cat<<EOF|sudotee/etc/modules-load.d/k8s.confbr_netfilterEOFcat<<EOF|sudotee/etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=1EOFsudosysctl--system0

这些配置命令的原因是:Kubernetes集群默认需要加密方式访问。所以,这几条命令,就是将刚刚部署生成的Kubernetes集群的安全配置文件,保存到当前用户的.kube目录下,kubectl默认会使用这个目录下的授权信息访问Kubernetes集群。如果不这么做的话,我们每次都需要通过exportKUBECONFIG环境变量告诉kubectl这个安全配置文件的位置。

master节点生成其他节点加入的方式cat<<EOF|sudotee/etc/modules-load.d/k8s.confbr_netfilterEOFcat<<EOF|sudotee/etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=1EOFsudosysctl--system1部署flannel网络组件cat<<EOF|sudotee/etc/modules-load.d/k8s.confbr_netfilterEOFcat<<EOF|sudotee/etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=1EOFsudosysctl--system2查看状态cat<<EOF|sudotee/etc/modules-load.d/k8s.confbr_netfilterEOFcat<<EOF|sudotee/etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=1EOFsudosysctl--system3master节点配置

删除master节点默认污点taint:污点的意思。如果一个节点被打上了污点,那么pod是不允许运行在这个节点上面的默认情况下集群不会在master上调度pod,如果偏想在master上调度Pod,可以执行如下操作:

cat<<EOF|sudotee/etc/modules-load.d/k8s.confbr_netfilterEOFcat<<EOF|sudotee/etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=1EOFsudosysctl--system4加入集群(worker)

利用之前master初始化的信息加入集群

cat<<EOF|sudotee/etc/modules-load.d/k8s.confbr_netfilterEOFcat<<EOF|sudotee/etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=1EOFsudosysctl--system5

加入成功后在master查看集群状态

cat<<EOF|sudotee/etc/modules-load.d/k8s.confbr_netfilterEOFcat<<EOF|sudotee/etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=1EOFsudosysctl--system6安装DashboardUI(master)获得配置文件cat<<EOF|sudotee/etc/modules-load.d/k8s.confbr_netfilterEOFcat<<EOF|sudotee/etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=1EOFsudosysctl--system7手动获取镜像cat<<EOF|sudotee/etc/modules-load.d/k8s.confbr_netfilterEOFcat<<EOF|sudotee/etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=1EOFsudosysctl--system8修改配置文件(ports部分)cat<<EOF|sudotee/etc/modules-load.d/k8s.confbr_netfilterEOFcat<<EOF|sudotee/etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=1EOFsudosysctl--system9运行并查看状态#安装需要的工具yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#设置源yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#查看有哪些docker版本yumlistdocker-ce--showduplicates|sort-r#安装特定的版本yummakecachefast&&yuminstall-ydocker-ce-18.09.8-3.el7docker-ce-cli-18.09.8-3.el7containerd.io-1.2.0-3.el7#启动dockersystemctldaemon-reload&&systemctlrestartdocker#设置为开机启动systemctlenabledocker.service0登录#安装需要的工具yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#设置源yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#查看有哪些docker版本yumlistdocker-ce--showduplicates|sort-r#安装特定的版本yummakecachefast&&yuminstall-ydocker-ce-18.09.8-3.el7docker-ce-cli-18.09.8-3.el7containerd.io-1.2.0-3.el7#启动dockersystemctldaemon-reload&&systemctlrestartdocker#设置为开机启动systemctlenabledocker.service1完全清除或卸载K8s

ThisagistforquickuninstallkubernetesIftheclusterisnode,Firstdeleteitfrommaster

#安装需要的工具yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#设置源yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#查看有哪些docker版本yumlistdocker-ce--showduplicates|sort-r#安装特定的版本yummakecachefast&&yuminstall-ydocker-ce-18.09.8-3.el7docker-ce-cli-18.09.8-3.el7containerd.io-1.2.0-3.el7#启动dockersystemctldaemon-reload&&systemctlrestartdocker#设置为开机启动systemctlenabledocker.service2

Thenremovekubeadmcompletely

#安装需要的工具yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#设置源yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#查看有哪些docker版本yumlistdocker-ce--showduplicates|sort-r#安装特定的版本yummakecachefast&&yuminstall-ydocker-ce-18.09.8-3.el7docker-ce-cli-18.09.8-3.el7containerd.io-1.2.0-3.el7#启动dockersystemctldaemon-reload&&systemctlrestartdocker#设置为开机启动systemctlenabledocker.service3

参考:

https://www.yinxiang.com/everhub/note/f420816c-2019-47a1-8dcd-7b3ade25ac1f

https://blog.51cto.com/3241766/2405624

https://juejin.cn/post/6844904161759199240#heading-25

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 正常SUV车胎压为多少合适? SUV胎压一般多少合适 宋新能源宋suv跑高速长途满载负荷胎压多少合适? 抖音买的钻石多少钱一个啊 抖音的钻石是多少抖币一个 潮汕话 你别出声怎么说 小鸡宝宝考考你考考你的观察力猫咪会出汗吗 手指甲被机器压到导致指甲脱落该如何治疗吃什么恢复快 六盘水市特殊教育学校基本情况 君亦浅惜,尔亦薄凉。什么意思 浅夏 浅语 浅惜哪个好听一点? 艾浅*离别惜是什么意思 具有中国传统元素的游戏软件的特点有 中国纸牌有哪些 新手养法斗幼犬的注意事项 多少钱一只 晚上开灯有好多飞虫,该怎么办? 办理社保在哪办理? 希望20岁的我在21岁的文案怎么写好看 海澜之家和海澜之家国民臻品区别? 闽西革命历史博物馆基地建设 原点是谁唱的? 悠悠往事如云烟。。。上句是什么??? 新疆12月份气温一般是多少 农历十二的月亮是什么意思 试用期期间发烧请假然后白天和直系领导请假,和人事说了请一天,晚上给她... 大白花地榆用途 大白花地榆基本信息 生地榆品种分类 墨江紫米墨江紫米的成熟季节 谁能给我一个家用的最大功率为800W的格兰仕微波炉的型号和生产厂家? 国家职业资格证网上可以查询吗? 夏天有什么水果 哪些水果在夏天上市 哪个按钮是洗衣服用的? 肚子咕咕叫一直拉稀水怎么治疗 孕妇拉肚子胎儿会缺氧什么原因造成的 孕妇拉肚子胎儿会缺氧怎么办 肚子咕咕叫拉稀怎么回事 拉稀水怎么办而且肚子咕咕叫唤,伴有呕吐物 酒精过敏是终身性的吗 喝了酒身上长红斑要紧吗,大片大片的红斑,但是不疼不痒,自己会恢复吧 酒精过敏会自动恢复吗