• 欢迎访问显哥博客,本网站纯属学习技术,绝无商业用途,欢迎小伙伴们共同学习!研究技术!QQ:52249909 加我QQ
  • 世界75亿人,这么小的概率,能认识你,是我一生的幸运,不妨加个QQ接触一下:52249909 加我QQ

Centos7.5使用kubeadm快速部署K8s集群【显哥出品,必为精品】

K8S lixian 3年前 (2021-04-09) 21694次浏览 0个评论 扫描二维码
文章目录[隐藏]
  • 环境准备
  • 部署K8S

环境准备

注意:master的CPU核数至少需要2核

节点 IP 系统配置
master 192.168.1.131 Centos7.5 || 2c || 2g
node1 192.168.1.122 Centos7.5 || 2c || 2g
node2 192.168.1.125 Centos7.5 || 2c || 2g

部署K8S

三个节点全部执行以下命令

#设置主机名
cat >> /etc/hosts <<EOF
192.168.1.131 master
192.168.1.122 node01
192.168.1.125 node02
EOF

#基础环境
yum install -y wget expect vim net-tools ntp bash-completion ipvsadm ipset jq iptables conntrack sysstat libseccomp openssh-clients

systemctl stop firewalld  &&  systemctl disable firewalld
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
echo 'KUBELET_EXTRA_ARGS="--fail-swap-on=false"' > /etc/sysconfig/kubelet

#设定亚洲时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime        
echo 'Asia/Shanghai' > /etc/timezone 

yum install -y ntp 
ntpdate ntp1.aliyun.com
echo '*/1 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' >>/var/spool/cron/root

#配置hosts文件
cat >> /etc/hosts << EOF        
192.168.1.131 k8s-master
192.168.1.122 k8s-node01
192.168.1.125 k8s-node02
EOF

#内核优化
cat << EOF | tee /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
fs.may_detach_mounts = 1
vm.overcommit_memory=1
vm.panic_on_oom=0
fs.inotify.max_user_watches=89100
fs.file-max=52706963
fs.nr_open=52706963
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp.keepaliv.probes = 3
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp.max_tw_buckets = 36000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp.max_orphans = 327680
net.ipv4.tcp_orphan_retries = 3
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.ip_conntrack_max = 65536
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.top_timestamps = 0
net.core.somaxconn = 16384
EOF
sysctl --system

#升级内核版本(每个节点都要执行) ---- 由于 Docker 运行需要较新的系统内核功能,例如 ipvs 等等,所以一般情况下,我们需要使用 4.0+ 以上版本的系统内核,如果是 CentOS 8 则不需要升级内核,我用的是5.4内核
wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-5.4.187-1.el7.elrepo.x86_64.rpm
wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-devel-5.4.187-1.el7.elrepo.x86_64.rpm
yum localinstall -y kernel-lt*
grub2-set-default  0 && grub2-mkconfig -o /etc/grub2.cfg
grubby --default-kernel
reboot

#免密登录(这个只在master登录)
ssh-keygen -t rsa
for i in master node01 node02 ; do ssh-copy-id -i ~/.ssh/id_rsa.pub root@$i ; done

#安装Docker
yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
systemctl start docker && systemctl enable docker
mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{ 
  "registry-mirrors": ["https://4vlknd55.mirror.aliyuncs.com"]
}
EOF

#因为默认k8s镜像仓库需要翻出去,所以配置国内镜像地址
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[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
EOF

yum install -y kubectl-1.20.2  kubelet-1.20.2 kubeadm-1.20.2
systemctl enable kubelet && systemctl start kubelet

以下操作只需要在master中执行

#记得将192.168.1.131修改为master的ip地址,其余不变.需要等待几分钟才可执行完成.会提示[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver.只是警告可忽略.(如果master的cpu核数只有1核,这里还会提示cpu核数达不到要求的2核)
kubeadm init \
--image-repository=registry.cn-hangzhou.aliyuncs.com/k8sos \
--kubernetes-version=v1.20.2 \
--service-cidr=10.1.0.0/12 \
--pod-network-cidr=10.244.0.0/16

#执行完上一条语句后,会有类似如下命令的提示,根据提示执行即可.还有一条kubeadm join 192.168.2.130:6443 --token,这个是用来在node上执行,加入到k8s集群中的,我们稍后需要用到
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

以下操作在两个node中执行

#不要直接复制这里的,是kubeadm init执行完成后,后面提示的那条语句.就是我们刚才说的那个
kubeadm join 192.168.1.131:6443 --token c1qboh.pg159xmk61z5rbeg \
    --discovery-token-ca-cert-hash sha256:ff09b3a7b0989de094b73e811bf378d8ab1cf3c1e413e3753ebd5de826075931

以下操作在master执行

#配置calico网络
wget https://docs.projectcalico.org/manifests/calico.yaml
kubectl apply -f calico.yaml
#可能需要一分钟左右启动初始化完成,才有返回结果.然后再执行下一步
kubectl get nodes
#可能需要等待几分钟,状态才能全部转为ready.然后再执行下一步
kubectl get pod -n kube-system
#可能需要等待几分钟,直至所有状态才能全部转为ready 1/1.然后再执行下一步
#在其中一台node上部署rancher
docker run --privileged -d --restart=always --name rancher -p 80:80 -p 443:443 rancher/rancher:stable

#配置k8s UI界面
wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

vim kubernetes-dashboard.yaml
#修改以下行对应内容,注意不能使用tab键,只能使用空格进行对启,注意格式要按照原来的,不能多一个空格,也不能少一个空格

......
111       - name: kubernetes-dashboard
112         image: lizhenliang/kubernetes-dashboard-amd64:v1.10.1   # 替换此行
......
157 spec:
158   type: NodePort     # 增加此行
159   ports:
160     - port: 443
161       targetPort: 8443
162       nodePort: 30001   # 增加此行
163   selector:
164     k8s-app: kubernetes-dashboard
......

kubectl apply -f kubernetes-dashboard.yaml
#现在我们可以访问https://192.168.1.131:30001.当然也需要等一会.注意是https

访问K8S UI界面,效果:(会提示链接不安全,点击高级->接受风险并继续即可)
Centos7.5使用kubeadm快速部署K8s集群【显哥出品,必为精品】

#创建管理员帐号
kubectl create serviceaccount dashboard-admin -n kube-system
#配置管理员帐号为集群管理员帐号
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
#执行以下命令后,会生成对应的token,在https://192.168.1.131:30001中选择token,输入该token即可登陆k8s管理后台
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')

Centos7.5使用kubeadm快速部署K8s集群【显哥出品,必为精品】

输入令牌Token,登陆K8S UI界面

Centos7.5使用kubeadm快速部署K8s集群【显哥出品,必为精品】

最终效果:

Centos7.5使用kubeadm快速部署K8s集群【显哥出品,必为精品】


本站博主 , 版权所有丨如未注明 , 均为原创
转载请注明原文链接: Centos7.5使用kubeadm快速部署K8s集群【显哥出品,必为精品】
喜欢 (1)

您必须 登录 才能发表评论!

安静的做一个爱设计爱思考的男孩纸

博主简介

帅气的90后!爱好未知黑科技,一直在路上奋斗着

最多评论

近期文章

  • Mysqldb不兼容Python3.5 以后的版本 报错NameError: name ‘_mysql’ is not defined【显哥出品,必为精品】
  • Python之pandas读取Excel表格空值为NAN的处理【显哥出品,必为精品】
  • Django中如何使用Mysql数据库【显哥出品,必为精品】
  • Python基于opencv实现AI人脸识别(二)语音播报和MySQL数据存储【显哥出品,必为精品】
  • Python基于opencv实现AI人脸识别(一)Opencv基础模块搭建和demo例子【显哥出品,必为精品】
  • Nginx缓存区权限 浏览器报错net::ERR_INCOMPLETE_CHUNKED_ENCODING【显哥出品,必为精品】

网站统计

  • 文章总数:397 篇
  • 评论数目:4000 条
  • 建站日期:2018-01-01
  • 运行天数:2392 天
  • 标签总数:85 个
  • 最后更新:2023-6-2

扫一扫,加微信

PHP网站源码东莞网络推广福田网络营销龙华网站搭建布吉模板制作双龙营销网站木棉湾网站开发福永网站搜索优化南联网站推广方案布吉网站优化推广木棉湾优秀网站设计塘坑企业网站制作南山建站坑梓百度网站优化排名盐田模板推广坑梓网站建设永湖外贸网站制作石岩网站优化按天扣费石岩seo网站优化坪山网站定制坂田网络广告推广横岗seo网站推广大芬百度网站优化排名东莞网站推广惠州网站设计坂田关键词按天计费福田百姓网标王推广光明如何制作网站南山至尊标王龙岗设计公司网站南澳百姓网标王推广歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化