Kubernetes(k8s)集群部署和服务配置
一、k8s的简介1.什么是k8sKubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着(比如用户想让apache一直运行,用户不...
文章目录
一、k8s的简介
1.什么是k8s
Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着(比如用户想让apache一直运行,用户不需要关心怎么去做,Kubernetes会自动去监控,然后去重启,新建,总之,让apache一直提供服务),管理员可以加载一个微型服务,让规划器来找到合适的位置,同时,Kubernetes也系统提升工具以及人性化方面,让用户能够方便的部署自己的应用(就像canary deployments)。
2.k8s中一些名词的解释
一个K8S系统,通常称为一个K8S集群(Cluster)。
这个集群主要包括两个部分: 一个Master节点(主节点) 一群Node节点(计算节点)
Master节点包括API Server、Scheduler、Controller manager、etcd。
API Server是整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅”。
Scheduler负责对集群内部的资源进行调度,相当于“调度室”。
Controller manager负责管理控制器,相当于“大总管”。
然后是Node节点。
Node节点包括Docker、kubelet、kube-proxy、Fluentd、kube-dns(可选),还有就是Pod。
Pod是Kubernetes最基本的操作单元。一个Pod代表着集群中运行的一个进程,它内部封装了一个或多个紧密相关的容器。除了Pod之外,K8S还有一个Service的概念,一个Service可以看作一组提供相同服务的Pod的对外访问接口。
Docker,不用说了,创建容器的。
Kubelet,主要负责监视指派到它所在Node上的Pod,包括创建、修改、监控、删除等。
Kube-proxy,主要负责为Pod对象提供代理。
Fluentd,主要负责日志收集、存储与查询。
二、k8s集群的安装和搭建
1.环境准备
server1(MASTER):172.25.20.1
server2:172.25.20.2
server3:172.25.20.3
2.安装k8s
k8s的安装包可以在阿里云的镜像官网上下载,此处的地址为https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/,直接将网址创建一个yum源就可以yum安装使用,但是默认会下载最新版本,我们可以在下载的时候跟版本号来指定版本,本次实验用的是v1.15.0版本
yum源的配置不再赘述,本处直接下载使用
yum install kubectl-1.15.0 kubeadm-1.15.0 kubelet-1.15.0 -y ##直接安装这三个软件
kubeadm 是 Kubernetes 主推的部署工具之一,依赖于kubelet
kubectl 是 管理工具
3.导入运行所需镜像
也可以在联网状态下直接创建集群,那样会自己从网上拉取,本处是在github中下载好之后直接导入
将所与镜像单独放在一个目录下,三个节点都需要导入
for i in *.tar; do docker load -i $i;done ##直接自动导入所有镜像
所需的镜像如下图:
4.修改一些配置然后创建集群
vim /etc/sysctl.d/k8s.conf ##加两条iptables火墙策略
sysctl --system ##使策略生效
scp /etc/sysctl.d/k8s.conf root@172.25.20.2:/etc/sysctl.d/k8s.conf
##把文件复制到其他两个节点上
sysctl --system
scp /etc/sysctl.d/k8s.conf root@172.25.20.3:/etc/sysctl.d/k8s.conf
sysctl --system
在三个节点上关闭swap分区
swapoff -a ##关闭swap分区
vim /etc/fstab ##把关于swap分区的自动挂载注释掉
创建一个集群:
kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=172.25.20.1
##可以根据k8s的官方文档添加更多的参数
普通节点直接jion即可
在集群创建成功后根据它的提示创建用户并复制配置文件给这个用户
此时节点的状态仍然是notready,是因为网络还没配置好,需要在读取一个yml文件和flame.tar镜像
将这个文件kube-flannel.yml复制到建立的用户的家目录下
kubectl apply -f kube-flannel.yml ##使这个配置文件生效,然后再次查询
三、给k8s添加一个图形化ui
1.首先导入镜像和获取一个yaml文件
镜像需要在三个节点上都导入
docker load -i kubernetes-dashboard.tar ##导入镜像
本次使用的版本为k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
将kubernetes-dashboard.yaml文件复制到kubeadm用户的家目录下
cp kubernetes-dashboard.yaml /home/kubeadm/
浏览器访问测试:
2.给图形ui配置一个登陆用户
编写一个yaml文件,内容如下:
更多推荐
所有评论(0)