电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 1888 人浏览分享

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

[复制链接]
1888 0

配置背景介绍

kubernetes是google开源的容器集群管理系统,提供应用部署、维护、扩展机制等功能,
利用kubernetes能方便管理跨集群运行容器化的应用,简称:k8s(k与s之间有8个字母)

为什么要用kubernetes这么复杂的docker集群管理工具呢?一开始接触了docker内置的swarm,
这个工具非常简单快捷的完成docker集群功能。但是在使用docker1.13内置的swarm做集群的时候
遇到vip负载均衡没有正确映射端口到外网,或者出现地址被占用的情况,这对高可用性的需求是不利的,
然而又没找到一个解决方案,只能转投k8s。

实验环境

centos7.3 64位

安装

  1. yum-config-manager --add-repo https://docs.docker.com/v1.13/engine/inst
  2. allation/linux/repo_files/centos/docker.repo
  3. yum makecache fast
  4. yum -y install docker-engine-1.13.1
  5. yum install epel-release -y
  6. yum remove -y docker-engine*
  7. yum install -y kubernetes etcd docker flannel
复制代码


修改配置文件

注意下面的10.135.163.237换成自己服务器ip

  1. sed -i "s/localhost:2379/10.135.163.237:2379/g" /etc/etcd/etcd.conf
  2. sed -i "s/localhost:2380/10.135.163.237:2380/g" /etc/etcd/etcd.conf
  3. sed -i "s/10.135.163.237:2379/10.135.163.237:2379,http:\/\/127.0.0.1:2379/g" /etc/etcd/etcd.conf
  4. sed -i "s/127.0.0.1:2379/10.135.163.237:2379/g" /etc/kubernetes/apiserver
  5. sed -i "s/--insecure-bind-address=127.0.0.1/--insecure-bind-address=0.0.0.0/g" /etc/kubernetes/apiserver
  6. sed -i "s/--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,Servi
  7. ceAccount,ResourceQuota/--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQ
  8. uota/g" /etc/kubernetes/apiserver
  9. sed -i "s/--hostname-override=127.0.0.1/--hostname-override=10.135.163.237/g" /etc/kubernetes/kubelet
  10. sed -i "s/127.0.0.1:8080/10.135.163.237:8080/g" /etc/kubernetes/kubelet
  11. sed -i "s/--address=127.0.0.1/--address=0.0.0.0/g" /etc/kubernetes/kubelet
  12. sed -i "s/127.0.0.1:8080/10.135.163.237:8080/g" /etc/kubernetes/config
  13. sed -i "s/127.0.0.1:2379/10.135.163.237:2379/g" /etc/sysconfig/flanneld
复制代码


修改host


  1. vi /etc/hosts
  2. 10.135.163.237 k8s_master
复制代码


添加网络

  1. systemctl enable etcd.service
  2. systemctl start etcd.service
  3. etcdctl mk //atomic.io/network/config '{"Network":"172.17.0.0/16"}'
复制代码


启动服务

  1. service docker start
  2. for SERVICES in etcd kube-apiserver kube-controller-manager kube-sc
  3. heduler kube-proxy kubelet docker flanneld ; do systemctl restart $SERVICES;
  4. systemctl enable $SERVICES; systemctl status $SERVICES; done;
复制代码


第一个demo

编写文件a.yaml

  1. apiVersion: extensions/v1beta1
  2. kind: Deployment
  3. metadata:
  4. name: my-app
  5. spec:
  6. replicas: 2
  7. template:
  8. metadata:
  9. labels:
  10. app: my-app
  11. spec:
  12. containers:
  13. - name: my-app
  14. image: registry.alauda.cn/yubang/paas_base_test
  15. ports:
  16. - containerPort: 80
  17. command: ["/bin/bash", "/var/start.sh"]
  18. resources:
  19.   limits:
  20.   cpu: 0.5
  21.   memory: 64Mi
复制代码


编写文件b.yaml


  1. codecodeapiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: my-app-svc
  5. labels:
  6. app: my-app
  7. spec:
  8. ports:
  9. - port: 80
  10. targetPort: 80
  11. nodePort: 30964
  12. type: NodePort
  13. selector:
  14. app: my-app
  15. /code/code
复制代码


创建服务

  1. kubectl create -f a.yaml --validate
  2. kubectl create -f b.yaml --validate
复制代码


删除服务

  1. kubectl delete -f a.yaml
  2. kubectl delete -f b.yaml
复制代码


增加子节点

安装软件

  1. yum-config-manager --add-repo https://docs.docker.com/v1.13/en
  2. gine/installation/linux/repo_files/centos/docker.repo
  3. yum makecache fast
  4. yum -y install docker-engine-1.13.1
  5. yum install epel-release -y
  6. yum remove -y docker-engine*
  7. yum install -y kubernetes docker flannel
复制代码


修改配置文件(10.135.163.237为主节点ip,139.199.0.29为当前节点ip)

  1. sed -i "s/--hostname-override=127.0.0.1/--hostname-override=139.199.0.29/g" /etc/kubernetes/kubelet
  2. sed -i "s/127.0.0.1:8080/10.135.163.237:8080/g" /etc/kubernetes/kubelet
  3. sed -i "s/--address=127.0.0.1/--address=0.0.0.0/g" /etc/kubernetes/kubelet
  4. sed -i "s/127.0.0.1:8080/10.135.163.237:8080/g" /etc/kubernetes/config
  5. sed -i "s/127.0.0.1:2379/10.135.163.237:2379/g" /etc/sysconfig/flanneld
  6. sed -i "s/--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,Security
  7. ContextDeny,ServiceAccount,ResourceQuota/--admission_control=NamespaceLifecycle,Na
  8. mespaceExists,LimitRanger,ResourceQuota/g" /etc/kubernetes/apiserver
复制代码


启动服务

  1. service docker start

  2. for SERVICES in kube-proxy kubelet docker flanneld; do
  3.   systemctl restart $SERVICES
  4.   systemctl enable $SERVICES
  5.   systemctl status $SERVICES
  6. done;
复制代码


在主服务器查看节点

  1. kubectl get node
复制代码


重启服务(重新加入集群)

  1. systemctl restart kube-apiserver.service
复制代码


删除节点

  1. kubectl delete node 节点ip
复制代码

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.