kubernetes(k8s)安装部署

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

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)安装部署
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
16天前
|
存储 运维 Kubernetes
Docker+Kubernetes/K8s+Jenkins视频资料【干货分享】
Docker+Kubernetes/K8s+Jenkins视频资料【干货分享】
Docker+Kubernetes/K8s+Jenkins视频资料【干货分享】
|
10天前
|
Kubernetes API 调度
|
11天前
|
Kubernetes 应用服务中间件 nginx
K8S二进制部署详解,一文教会你部署高可用K8S集群(二)
K8S二进制部署详解,一文教会你部署高可用K8S集群(二)
|
11天前
|
Kubernetes 网络安全 数据安全/隐私保护
K8S二进制部署详解,一文教会你部署高可用K8S集群(一)
K8S二进制部署详解,一文教会你部署高可用K8S集群(一)
|
11天前
|
SQL Kubernetes 调度
【一文看懂】部署Kubernetes模式的Havenask集群
本次分享内容为havenask的kubernetes模式部署,由下面2个部分组成(部署Kubernetes模式Havenask集群、 Kubernetes模式相关问题排查),希望可以帮助大家更好了解和使用Havenask。
26 1
|
12天前
|
Kubernetes 网络协议 Python
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(二)
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(二)
|
12天前
|
Kubernetes 应用服务中间件 开发工具
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(一)
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(一)
|
14天前
|
存储 Kubernetes 监控
|
16天前
|
存储 Kubernetes Docker
使用 kubeadm 快速部署一个 Kubernetes 集群
使用 kubeadm 快速部署一个 Kubernetes 集群
|
16天前
|
Kubernetes 负载均衡 应用服务中间件
部署一套完整的Kubernetes高可用集群(二进制,最新版v1.18)下
部署一套完整的Kubernetes高可用集群(二进制,最新版v1.18)下
部署一套完整的Kubernetes高可用集群(二进制,最新版v1.18)下