DDR爱好者之家 Design By 杰米

配置背景介绍

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 

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。

DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。