`
m635674608
  • 浏览: 5044119 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Kubernetes 1.5安装

 
阅读更多

Kubernetes从1.3开始引入kubeadm来试图简化其复杂的安装。但kubeadm至今仍不稳定,而且我个人觉得kubeadm反而麻烦,还不如直接用脚本或者其他自动化工具来安装来的利索。关于kubeadm配置master的ha,也有相应的替代方案,比如使用keepalived或者corosync等高可用集群软件。所以在这篇文档中,我还是会使用传统的方式来安装kubernetes集群

  Kubernetes依赖于docker和etcd,docker的网络,在这里直接使用flannel。在这篇文档里,不会对master的高可用做过多的阐述,我们先简单的建立一个基本可用最小化集群。我这里使用的三台CentOS 7.2的服务器,各服务器角色介绍如下:

10.5.10.116 server-116    master节点、node节点、etcd节点
10.5.10.117 server-117    node节点、etcd节点
10.5.10.131 server-131    node节点、etcd节点

需要说明的是,这里需要大家自己设定好基本环境,比如关闭selinux,配置时间同步,清空现有的iptables策略,以及配置好epel源等。

1、安装并启动docker

docker的安装比较简单,直接使用yum安装即可:

yum install -y docker
systemctl start docker
systemct enable docker

 

2、安装etcd

在所有节点上执行如下安装操作:

yum install -y etcd

修改/etc/etcd/etcd.conf配置文件如下:

复制代码
ETCD_NAME=server-116    #etcd的名称,可以设置为各节点的主机名
ETCD_DATA_DIR="/data/etcd"
ETCD_LISTEN_PEER_URLS="http://10.5.10.116:2380"
ETCD_LISTEN_CLIENT_URLS="http://10.5.10.116:2379,http://127.0.0.1:2379"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.5.10.116:2380"
ETCD_INITIAL_CLUSTER="server-116=http://10.5.10.116:2380,server-117=http://10.5.10.117:2380,server-131=http://10.5.10.131:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="http://10.5.10.116:2379"
复制代码

创建etcd的数据存储目录:

mkdir -p /data/etcd

修改etcd的启动文件/usr/lib/systemd/system/etcd.service,因为默认通过yum安装的etcd的启动项不适用于etcd集群,修改部分内容如下:

复制代码
ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/bin/etcd --name=\"${ETCD_NAME}\" --data-dir=\"${ETCD_DATA_DIR}\" --listen-client-urls=\"${ETCD_LISTEN_CLIENT_URLS}\" --initial-advertise-peer-urls=\"${ETCD_INITIAL_ADVERTISE_PEER_URLS}\" --listen-peer-urls=\"${ETCD_LISTEN_PEER_URLS}\" --initial-cluster=\"${ETCD_INITIAL_CLUSTER}\" --advertise-client-urls=\"${ETCD_ADVERTISE_CLIENT_URLS}\" --initial-cluster-token=\"${ETCD_INITIAL_CLUSTER_TOKEN}\" --initial-cluster-state=\"${ETCD_INITIAL_CLUSTER_STATE}\""
复制代码

启动etcd:

systemctl start etcd
systemct enable etcd

查看etcd集群状态:

复制代码
48a6ea53479805ea: name=etcd1 peerURLs=http://10.5.10.116:2380 clientURLs=http://10.5.10.116:2379 isLeader=true
7760fc31c2c1eeb1: name=etcd2 peerURLs=http://10.5.10.117:2380 clientURLs=http://10.5.10.117:2379 isLeader=false
f12c14665e56ea5e: name=etcd3 peerURLs=http://10.5.10.131:2380 clientURLs=http://10.5.10.131:2379 isLeader=false
复制代码

 

3、配置flannel

先在etcd中注册flannel子网:

etcdctl set /coreos.com/network/config '{"network": "172.16.0.0/16"}'

在所有节点安装flannel:

yum install -y flannel

修改flannel配置文件/etc/sysconfig/flanneld如下:

FLANNEL_ETCD="http://10.5.10.116:2379,http://10.5.117:2379,http://10.5.131:2379"
FLANNEL_ETCD_KEY="/coreos.com/network"

启动flannel:

systemctl start flanneld
systemctl enable flanneld

需要说明的是,如果要让docker使用flannel的网络,docker必须要后于flannel启动,所以需要重新启动docker:

systemctl restart docker

 

4、安装kubernetes服务端

我这里使用的是网上别人提供的私有的kubernetes的yum源,如下:

复制代码
vim /etc/yum.repos.d/kube.repo

[kube]
name=Mritd Repository
baseurl=https://yum.mritd.me/centos/7/x86_64
enabled=1
gpgcheck=1
gpgkey=https://mritd.b0.upaiyun.com/keys/rpm.public.key
复制代码

先通过yumdownloader将所有kubernetes相关的包下载下来,然后再通过本地yum实现安装:

yumdownloader kubernetes-master kubernetes-client kubernetes-node
yum localinstall -y kubernetes-master kubernetes-client

修改kubernetes master上的配置文件如下:

复制代码
vim /etc/kubernetes/config

KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://10.5.10.116:8080"

vim /etc/kubernetes/apiserver

KUBE_API_ADDRESS="--address=0.0.0.0"
KUBE_API_PORT="--port=8080 --secure-port=443"
KUBE_MASTER="--master=http://10.5.10.116:8080"
KUBELET_PORT="--kubelet-port=10250"
KUBE_ETCD_SERVERS="--etcd-servers=http://10.5.10.116:2379,http://10.5.10.117:2379,http://10.5.10.131:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
复制代码

 

启动kubernetes master:

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

 

5、安装kubernetes node端

yum install -y kubernetes-node

修改node的配置文件:

复制代码
vim /etc/kubernetes/config

KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://10.5.10.116:8080"

vim /etc/kubernetes/kubelet

KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_HOSTNAME="--hostname-override=server-116"
KUBELET_API_SERVER="--api-servers=http://10.5.10.116:8080"
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=myhub.fdccloud.com/library/pod-infrastructure:latest"
复制代码

启动node端:

systemctl start kubelet kube-proxy
systemctl enable kubelet kube-proxy

 

最后通过在kubernetes master上通过kubectl查看各节点是否正常:

[root@server-116 ~]# kubectl get nodes
NAME         STATUS    AGE
server-116   Ready     1d
server-117   Ready     1d
server-131   Ready     1d

 

至此,完成kubernetes 1.5的基本安装  

 

http://www.cnblogs.com/breezey/p/6545307.html

分享到:
评论

相关推荐

    解决Kubernetes用Helm安装Ingress的问题.docx

    ### 解决Kubernetes使用Helm安装Ingress的问题 #### Ingress Controller的重要性 Ingress是Kubernetes中的一个重要组件,主要用于管理外部访问集群内服务的规则,它充当了一个路由的角色,能够根据用户定义的规则将...

    kubernetes基础入门

    **1.5 Kubernetes201** 深入讲解Kubernetes的核心组件及其工作原理,包括如何使用更高级的功能如Ingress、Persistent Volume等。 **1.6 Kubernetes集群** - **集群架构**: 描述Kubernetes集群的整体架构,包括...

    swift:Ajax友好的Helm Tiller代理

    Kubernetes 1.5以上版本。 Helm Tiller服务器。 请选择与您的Tiller服务器匹配的Swift版本。 迅捷版 文件 头盔/耕种机版本 2.14.0 2.13.0 用户指南 2.12.0 0.9.0 用户指南 2.11.0 0.8.1 用户指南 2.9.0 0.7.3...

    Kubernetes 的 Go 客户端 .zip

    目录包含的内容版本控制兼容性你的代码<->client-go兼容性client-go <-> Kubernetes 集群兼容性矩阵为什么 1.4 和 1.5 分支包含以版本命名的顶级文件夹?Kubernetes 标签如何获取如何使用依赖管理贡献代码包含的内容...

    Kubernetes最佳实践案例.pdf

    Kubernetes从1.5版本开始,默认部署为高可用系统,包括Etcd集群、kube-apiserver的负载均衡、多组件的自动选主等。Etcd集群的高可用性至关重要,因为它存储了集群的状态信息。安装Etcd时,需要配置CA证书,并生成...

    Kubernetes最佳实践案例.docx

    Kubernetes 自1.5版本起,通过kops或kube-up.sh部署的集群默认实现高可用性。这包括Etcd集群(多副本模式)、kube-apiserver的负载均衡、kube-controller-manager和kube-scheduler的单一活实例策略,以及cluster-...

    Istio Prelim 1.5 官方中文文档.pdf

    它安装于 Kubernetes 环境之上,提供关键功能,例如服务发现、负载均衡、故障恢复、度量和监控、服务到服务认证等。Istio 1.5版本作为文档中提到的版本,具有许多新特性和改进。 Istio 架构主要包括 Envoy Proxy、...

    k8s-CKA-study-guide:认证的Kubernetes助理(CKA)准备

    使用Kubeadm安装基本集群 1.3。 管理高可用性的Kubernetes集群 1.4。 调配基础架构以部署Kubernetes集群 1.5。 使用Kubeadm在Kubernetes集群上执行版本升级 1.6。 实施etcd备份和还原 15% 2.1。 了解部署以及如何...

    workshop-vscode:使用VSCode为您的浏览器预装Kubernetes Lab

    研讨会-vscode 带有来自的VSCode的浏览器内部版本的OpenFaaS 所有工具都已在Kubernetes上随OpenFaaS预先安装,并且在浏览器终端中提供了k3。这个怎么运作将使用cloudinit向虚拟机提供云托管提供商与将在VM安装将安装...

    CentOS 7.5 安装 K8S v1.11.0 集群

    Kubeadm 是用于简化 Kubernetes 集群安装过程的工具,可以使用以下步骤进行安装: 1. **添加 Kubernetes 存储库**: ```bash cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes ...

    k8s-v1.8.13安装学习记录

    在本文档中,我们将深入探讨如何构建并安装Kubernetes 1.8.13版本的集群,以及所需的辅助组件和服务。该文档不仅记录了安装过程中的关键步骤,还介绍了各组件的作用和配置要点。 ##### 1.1 Kubernetes 1.8.13 ...

    探照灯:Ku Kubernetes警报

    请选择与您的Kubernetes安装匹配的Searchlight版本。 探照灯版本 文件 Kubernetes版本 (使用CRD) 1.9.x +(测试/质量检查群集) (使用CRD) 1.8.x (使用CRD) 1.7.x + (使用TPR) 1.5.x-1.7.x

    PyPI 官网下载 | web_imagery-1.5.tar.gz

    因此,“web_imagery-1.5.tar.gz”是一个经过gzip压缩的tar归档文件,它包含了“web_imagery”项目的所有源代码、文档和其他相关资源,便于用户下载、解压和安装。 “web_imagery”这个包可能是一个专门用于处理...

    PyPI 官网下载 | anti-1.5.3.3.tar.gz

    这可能意味着它支持容器化部署,与Kubernetes或Docker等云平台兼容。 4. **Python库**:这告诉我们"anti"是一个Python开发的软件包,可以被其他Python项目导入和使用,提供特定的功能或者工具。 根据压缩包子文件...

    PyPI 官网下载 | Products.MailArchive-1.5.tar.gz

    在云原生环境中,Products.MailArchive可能被设计为易于部署、扩展和管理,兼容容器技术如Docker,并且能与Kubernetes等容器编排系统协同工作。 至于Python库,Products.MailArchive可能是基于Python的邮件处理框架...

    DataIQ安装管理手册

    1.5 初始化 DataIQ 运行 DataIQ 安装程序,接收初始密码,并可选地设置安全远程服务。初始化 DataIQ 在 root 模式下输入命令:dataiq init。 1.6 许可说明 DataIQ 许可证可以选择试用功能 1 年,包括连接到第三方...

    istio-1.5.0-linux.tar.gz

    解压“istio-1.5.0”文件后,你可以找到安装指南和示例配置,了解如何在Kubernetes集群中部署Istio。 9. **版本升级**:Istio的版本升级过程需要谨慎操作,确保不中断服务。从1.5.0到更高版本,可能涉及到配置变更...

    defaultbackend-amd64.1.5.tar.zip

    这个文件名暗示它可能是一个针对AMD64(也称为x86_64)架构的软件包,版本号为1.5。"tar"后缀表明这是一个归档文件,通常用于将多个文件或目录打包到一起。".zip"则表示这个归档文件进一步被ZIP压缩格式进行了压缩,...

    IBM WebSphere Application Server Network Deployment 9.0.5.X 安装配置

    - **容器化支持**:通过Kubernetes和Docker容器化应用服务器实例,以便于部署和扩展。 - **增强的安全性**:引入了新的安全机制和策略,提高了应用的安全性。 - **简化管理和监控**:改进了管理控制台的用户体验,...

Global site tag (gtag.js) - Google Analytics