在centos 7中安装配置k8s集群的步骤详解
发布时间 - 2026-01-11 03:14:26 点击率:次配置背景介绍

kubernetes是google开源的容器集群管理系统,提供应用部署、维护、扩展机制等功能,利用kubernetes能方便管理跨集群运行容器化的应用,简称:k8s(k与s之间有8个字母)
为什么要用kubernetes这么复杂的docker集群管理工具呢?一开始接触了docker内置的swarm,这个工具非常简单快捷的完成docker集群功能。但是在使用docker1.13内置的swarm做集群的时候遇到vip负载均衡没有正确映射端口到外网,或者出现地址被占用的情况,这对高可用性的需求是不利的,然而又没找到一个解决方案,只能转投k8s。
实验环境
- 腾讯云
- centos7.3 64位
安装
yum-config-manager --add-repo https://docs.docker.com/v1.13/engine/installation/linux/repo_files/centos/docker.repo yum makecache fast yum -y install docker-engine-1.13.1 yum install epel-release -y yum remove -y docker-engine* yum install -y kubernetes etcd docker flannel
修改配置文件
注意下面的10.135.163.237换成自己服务器ip
sed -i "s/localhost:2379/10.135.163.237:2379/g" /etc/etcd/etcd.conf sed -i "s/localhost:2380/10.135.163.237:2380/g" /etc/etcd/etcd.conf sed -i "s/10.135.163.237:2379/10.135.163.237:2379,http:\/\/127.0.0.1:2379/g" /etc/etcd/etcd.conf sed -i "s/127.0.0.1:2379/10.135.163.237:2379/g" /etc/kubernetes/apiserver sed -i "s/--insecure-bind-address=127.0.0.1/--insecure-bind-address=0.0.0.0/g" /etc/kubernetes/apiserver sed -i "s/--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota/--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota/g" /etc/kubernetes/apiserver sed -i "s/--hostname-override=127.0.0.1/--hostname-override=10.135.163.237/g" /etc/kubernetes/kubelet sed -i "s/127.0.0.1:8080/10.135.163.237:8080/g" /etc/kubernetes/kubelet sed -i "s/--address=127.0.0.1/--address=0.0.0.0/g" /etc/kubernetes/kubelet sed -i "s/127.0.0.1:8080/10.135.163.237:8080/g" /etc/kubernetes/config sed -i "s/127.0.0.1:2379/10.135.163.237:2379/g" /etc/sysconfig/flanneld
修改host
vi /etc/hosts 10.135.163.237 k8s_master
添加网络
systemctl enable etcd.service
systemctl start etcd.service
etcdctl mk //atomic.io/network/config '{"Network":"172.17.0.0/16"}'
启动服务
service docker start for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler kube-proxy kubelet docker flanneld ; do systemctl restart $SERVICES; systemctl enable $SERVICES; systemctl status $SERVICES; done;
第一个demo
编写文件a.yaml
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-app spec: replicas: 2 template: metadata: labels: app: my-app spec: containers: - name: my-app image: registry.alauda.cn/yubang/paas_base_test ports: - containerPort: 80 command: ["/bin/bash", "/var/start.sh"] resources: limits: cpu: 0.5 memory: 64Mi
编写文件b.yaml
apiVersion: v1 kind: Service metadata: name: my-app-svc labels: app: my-app spec: ports: - port: 80 targetPort: 80 nodePort: 30964 type: NodePort selector: app: my-app
创建服务
kubectl create -f a.yaml --validate kubectl create -f b.yaml --validate
删除服务
kubectl delete -f a.yaml kubectl delete -f b.yaml
增加子节点
安装软件
yum-config-manager --add-repo https://docs.docker.com/v1.13/engine/installation/linux/repo_files/centos/docker.repo yum makecache fast yum -y install docker-engine-1.13.1 yum install epel-release -y yum remove -y docker-engine* yum install -y kubernetes docker flannel
修改配置文件(10.135.163.237为主节点ip,139.199.0.29为当前节点ip)
sed -i "s/--hostname-override=127.0.0.1/--hostname-override=139.199.0.29/g" /etc/kubernetes/kubelet sed -i "s/127.0.0.1:8080/10.135.163.237:8080/g" /etc/kubernetes/kubelet sed -i "s/--address=127.0.0.1/--address=0.0.0.0/g" /etc/kubernetes/kubelet sed -i "s/127.0.0.1:8080/10.135.163.237:8080/g" /etc/kubernetes/config sed -i "s/127.0.0.1:2379/10.135.163.237:2379/g" /etc/sysconfig/flanneld sed -i "s/--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota/--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota/g" /etc/kubernetes/apiserver
启动服务
service docker start for SERVICES in kube-proxy kubelet docker flanneld; do systemctl restart $SERVICES systemctl enable $SERVICES systemctl status $SERVICES done;
在主服务器查看节点
kubectl get node
重启服务(重新加入集群)
systemctl restart kube-apiserver.service
删除节点
kubectl delete node 节点ip
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
# centos7
# 集群
# k8s
# 安装k8s
# K8ssandra入门教程之Linux上部署K8ssandra到Kubernetes的过程
# Linux安装Kubernetes(k8s)超详细教程
# 配置文件
# 第一个
# 管理系统
# 腾讯
# 有一定
# 可用性
# 要用
# 这对
# 这篇文章
# 等功能
# 谢谢大家
# 重启
# 又没
# 开源
# 转投
# 负载均衡
# 但是在
# 有疑问
# localhost
# ip
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
桂林网站制作公司有哪些,桂林马拉松怎么报名?
如何在IIS中配置站点IP、端口及主机头?
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
Python图片处理进阶教程_Pillow滤镜与图像增强
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
使用C语言编写圣诞表白程序
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
高端企业智能建站程序:SEO优化与响应式模板定制开发
PHP 500报错的快速解决方法
如何在万网开始建站?分步指南解析
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
EditPlus中的正则表达式 实战(2)
微信小程序制作网站有哪些,微信小程序需要做网站吗?
bootstrap日历插件datetimepicker使用方法
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
如何在万网利用已有域名快速建站?
如何在景安云服务器上绑定域名并配置虚拟主机?
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
EditPlus中的正则表达式实战(6)
如何在七牛云存储上搭建网站并设置自定义域名?
详解jQuery中的事件
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
Laravel如何使用Gate和Policy进行授权?(权限控制)
Laravel如何实现多对多模型关联?(Eloquent教程)
Android滚轮选择时间控件使用详解
如何基于云服务器快速搭建网站及云盘系统?
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
如何用AI帮你把自己的生活经历写成一个有趣的故事?
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
iOS UIView常见属性方法小结
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
中山网站推广排名,中山信息港登录入口?
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
常州企业网站制作公司,全国继续教育网怎么登录?
如何在香港免费服务器上快速搭建网站?
Laravel如何实现文件上传和存储?(本地与S3配置)
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
南京网站制作费用,南京远驱官方网站?
如何快速搭建二级域名独立网站?
jquery插件bootstrapValidator表单验证详解
香港网站服务器数量如何影响SEO优化效果?
Laravel如何与Inertia.js和Vue/React构建现代单页应用
如何用IIS7快速搭建并优化网站站点?

