在centos 7中安装配置k8s集群的步骤详解

作者:yubang 时间:2023-08-12 03:32:46 

配置背景介绍

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/

标签:centos7,安装配置,k8s集群
0
投稿

猜你喜欢

  • linux Jenkins配置salve节点实现过程图解

    2023-11-02 18:16:22
  • centos7.x 部署主、从DNS服务器问题

    2023-07-01 12:44:08
  • 没有ISAPI Rewrite FULL照样玩多站点伪静态

    2010-05-12 20:55:00
  • 加快你浏览PTC广告的小技巧

    2009-03-11 11:28:00
  • 新手建站常识:IDC名词扫盲

    2010-01-20 22:49:00
  • 织梦首页调用随机文章定时更新教程

    2012-03-06 20:31:23
  • 上网搜索已成常态 企业负面信息处理四方法

    2009-01-08 11:26:00
  • 做SEO最重要的是什么?不同阶段的理解

    2009-07-11 11:39:00
  • VIM实现文件快速跳转插件详解

    2022-02-06 08:27:48
  • adsense修改收款人姓名政策更新

    2008-05-13 12:32:00
  • 文本与图片,哪项内容更重要?

    2008-02-15 07:29:00
  • 域名从godaddy转出到其他域名注册商教程

    2010-04-22 16:51:00
  • 与谷歌机器人约会:关于状态代码节约带宽

    2009-02-06 08:58:00
  • 2008年站长之路该如何走

    2008-01-20 16:23:00
  • 谷歌推出“春运交通图”

    2008-01-30 20:52:00
  • asp.net RewritePath重定向HTTP头Content-Location暴露真实路径解决方法

    2022-01-15 22:04:27
  • 合理改版的价值所在 网站改版的3要3不要

    2009-01-04 14:06:00
  • 两权分立的FTP工作模式

    2007-12-04 09:49:00
  • 十款最佳Blog编辑软件

    2007-12-12 13:33:00
  • ESXI内虚拟机内安装workstation网络不通解决方法

    2023-02-03 03:43:52
  • asp之家 网站运营 m.aspxhome.com