当前位置: 首页 > news >正文

kubernetes(k8s)安装部署

Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署,规划,更新,维护的一种机制。

Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着(比如用户想让apache一直运行,用户不需要关心怎么去做,Kubernetes会自动去监控,然后去重启,新建,总之,让apache一直提供服务),管理员可以加载一个微型服务,让规划器来找到合适的位置,同时,Kubernetes也系统提升工具以及人性化方面,让用户能够方便的部署自己的应用。

Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基 于分布式的存储系统。下面这张图是Kubernetes的架构图。

d230f854160e272c861e5eca43dd1a2e9e98fff8

Kubernetes主要由以下几个核心组件组成:

etcd保存了整个集群的状态;

apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;

controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;

scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;

kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;

Container runtime负责镜像管理以及Pod和容器的真正运行(CRI);

kube-proxy负责为Service提供cluster内部的服务发现和负载均衡。

基本环境

操作系统:redhat7.2

Docker:1.12.6

网络规划工具,统一分配集群Docker容器的虚拟IP,并实现服务之间通信:Flannel 0.7.0

需要关闭防火墙,并连接网络。

master:172.25.21.11 服务:apiserver, controller-manager, scheduler,etcd

node:172.25.21.12 服务:flannel, docker, kubelet, kube-proxy

master端安装和配置etcd

配置本地解析

vim /etc/hosts

172.25.21.11 server11 master

172.25.21.12 node1

安装etcd

yum install -y etcd

配置etcd

vim /etc/etcd/etcd.conf #修改部分内容如下

ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"

ETCD_ADVERTISE_CLIENT_URLS="http://server11:2379"

其中server11表示etcd服务器主机名

运行etcd

systemctl start etcd #启动etcd

systemctl enable etcd #开机自启etcd

配置etcd的flannel信息

etcdctl -C 172.25.21.11:2379 set /atomic.io/network/config '{"Network":"172.17.0.1/16"}'

master端安装kubernetes-master

安装

yum install kubernetes-master

修改配置文件

vim /etc/kubernetes/apiserver

KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"

KUBE_ETCD_SERVERS="--etcd-servers=http://server11:2379"

KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,

其中KUBE_ADMISSION_CONTROL的原有的SecurityContextDeny和ServiceAccount是权限相关的配置需要去掉。

配置全局配置文件

vim /etc/kubernetes/config

KUBE_MASTER="--master=http://master:8080"

启动master服务

systemctl start kube-apiserver kube-scheduler kube-controller-manager

测试master服务

配置node1节点

配置本地解析

vim /etc/hosts

172.25.21.11 server11 master

172.25.21.12 node1

安装服务

yum install -y docker flannel kubernetes-node

配置flannel

vim /etc/sysconfig/flanneld

FLANNEL_ETCD_ENDPOINTS="http://server11:2379"

FLANNEL_ETCD_PREFIX="/atomic.io/network"

配置全局配置文件

vim /etc/kubernetes/config

KUBE_MASTER="--master=http://master:8080"

配置kubelet组件

vim /etc/kubernetes/kubelet

KUBELET_HOSTNAME="--hostname-override=node1"

KUBELET_API_SERVER="--api-servers=http://master:8080"

启动服务

systemctl start kubelet kube-proxy

测试集群

在master节点运行

kubectl get nodes

本文转自CSDN- kubernetes(k8s)安装部署

相关文章:

  • nginx安装
  • 设置审批消息提醒
  • 中介者模式 调停者 Mediator 行为型 设计模式(二十一)
  • python-引用
  • pip install whl
  • 手动回滚事物
  • 栈-初识
  • 医疗保健行业中的区块链
  • Grace Ex与您携手共赢,迎接数字经济时代的到来
  • Spark RDD与MapReduce
  • 企业项目开发--切分配置文件
  • node下使用jquery
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • Analytics Zoo:在Apache Spark上实现分布式Tensorflow和BigDL管道的统一分析和AI平台
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • @angular/forms 源码解析之双向绑定
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • Apache Pulsar 2.1 重磅发布
  • docker-consul
  • go语言学习初探(一)
  • HTML中设置input等文本框为不可操作
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Java多线程(4):使用线程池执行定时任务
  • Magento 1.x 中文订单打印乱码
  • maven工程打包jar以及java jar命令的classpath使用
  • React-生命周期杂记
  • Redash本地开发环境搭建
  • springMvc学习笔记(2)
  • 编写高质量JavaScript代码之并发
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 聊聊redis的数据结构的应用
  • 码农张的Bug人生 - 初来乍到
  • 前端之React实战:创建跨平台的项目架构
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 使用Gradle第一次构建Java程序
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 云大使推广中的常见热门问题
  • 栈实现走出迷宫(C++)
  • ​LeetCode解法汇总518. 零钱兑换 II
  • #、%和$符号在OGNL表达式中经常出现
  • #Linux(帮助手册)
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (附源码)ssm码农论坛 毕业设计 231126
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (十八)SpringBoot之发送QQ邮件
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)可以带来幸福的一本书
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .net core 6 集成和使用 mongodb
  • .NET MVC 验证码
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)