在centos 7中安装配置k8s集群的步骤详解
作者:yubang 发布时间:2023-08-12 03:32:46
标签:centos7,安装配置,k8s集群
配置背景介绍
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
来源:http://blog.yubangweb.com/k8sshi-jian-bi-ji/


猜你喜欢
- 1.问题描述出于安全考虑,新搭建的服务器集群只开放指定几个端口,但是端口开放以后依然无法远程访问,后经过查找问题发现是防火墙需要对端口进行开
- SEO并不是简单的几个秘诀或几个建议,而是一项需要足够耐心和细致的脑力劳动。大体上,SEO包括六个环节。1、关键词分析(也叫关键词定位)这是
- 国外有很多的主机商都只是提供Linux的服务器,我看了有不少站长其实也是需要Windows的服务器的,比如你的网站是ASP.NET或者是AS
- 这里举例4个不同类型脚本的虚拟主机 权限设置例子主机头主机脚本硬盘目录IIS用户名硬盘权限
- 做站长已经有好几年了,每次都在失望中结束。经过一番冷静思考以后,才知道经营网站不是想象的那么容易,一是需要下功夫,二是需要坚持。下功夫是要懂
- 上译言网站的网友都应该看到那份通告了。这种类似的现象让人想起了饭否之类的微博关站,它会导致微博总体市场出现“此消彼长”的现象,例如新浪微博在
- 很多新站长都在为自己的网站推广而头痛,寻求友情链接,提交网站目录,搜索引擎,忙乎了很久也不见什么效果。下面就我对自己的网站推广和公司网站推广
- Godaddy主机用户怎样设置File Manager 页面的大小还有页面的增量呢?我们一起来学习下,具体步骤如下:第一. 点击Hostin
- 前言用nginx做负载均衡,作为架构的最前端或中间层,随着日益增长的访问量,需要给负载均衡做高可用架构,利用keepalived解决单点风险
- 最近用node.js开发了一个web项目,开发完打算先部署到我自己买的阿里云学生服务器上,让客户先试用下网站。不知道如何把node.js项目
- Godaddy主机提供的三款主机方案都支持域名绑定,但三款域名的域名的绑定个数是不同的,Economy Plan主机支持多域名绑到同一目录(
- SimpleServer:WWW——一款设置简单的Windows平台基础服务器。AnalogX公司的SimpleServer:WWW服务器可
- 付款流程中有两个收入点需要注意,一个是 10 美元,一个是 100 美元。一.10美元,确认帐户信息当你的收入达到10美元时,系统会自动向你
- 又有机会爆料国内 Web 2.0 网站的架构了。这次是 Yupoo! 。非正式的采访了一下 Yupoo!(又拍网) 的创建人之一的 阿华(沈
- 本文详细讲述了Docker实现分布式应用功能。分享给大家供大家参考,具体如下:这里接着前面一篇《Docker简单安装与应用入门教程》后面扩展
- 有Godaddy用户问Godaddy Linux主机对JSP的支持情况,现整理如下:1、首先,只有Godaddy的Linux系列主机才支持J
- 老谢说下软文的写作要点,希望对自己写软文的站长们一些帮助。一、标题新鲜标题新鲜,必须能吸引人的兴趣,使浏览者看了你这个标题之后仍有欲望看你的
- 国内的英文站长们经常遇到要用国内中文版的cms或论坛、博客来搭建英文网站,可是很多程序由于是针对国内用户设计的,所以并没有官方的英文版,如e
- 自己也是菜鸟一个(文中若有错误之处欢迎各位大虾们指出)但还是希望能将我自己的一些作站经历写出来,为广大菜鸟朋友们做一些参考。试验目的:在只有
- 有Godaddy主机用户问应该怎样在Password Vault里编辑密码呢?现在我来给大家简单的介绍下:首先. 登陆你的Account M