Centos7手工安装Kubernetes集群

安装Kubernetes集群有多种方式,前面介绍了Kubeadm的方式,本文将介绍手工安装的方法。

安装环境有3台Azure上的VM:

Hkube01:10.0.1.4
Hkube02:10.0.1.5
Hbube03:10.0.1.6

其中hkube01是Master节点,将会安装docker, etcd, Kubernetes master, flannel所需要的组件;

Hkube02和hkube03是worker节点,将会安装docker, kubernetes node, flannel所需要的组件。

安装过程如下:

一 master节点

1 安装软件

yum install -y docker etcd kubernetes-master

2 配置启动docker

由于docker-hub的站点在国外,下载会非常慢,把docker下载指向国内的镜像站点:

vim /etc/docker/daemon.json
{"registry-mirrors": ["registry.docker-cn.com"]}
systemctl enable docker
systemctl start docker

3 配置启动etcd

Etcd和zookeeper类似,是存储key/value的工具。

cd /etc/etcd
vim etcd.conf

ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_NAME="master"
ETCD_ADVERTISE_CLIENT_URLS=http://10.0.1.4:2379

systemctl enable etcd
systemctl start etcd

4 配置kubernetes

在/etc/kubernetes目录中,有4个配置文件:

需要配置apiserver和config两个配置文件。Controller-manager和scheduler不需要配置。

配置apiserver,需要指定etcd地址、api-server的端口、提供服务的地址和cluster的ip范围:

vim /etc/kubernetes/apiserver

KUBE_API_PORT="--port=8080"
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
KUBE_ETCD_SERVERS="--etcd-servers=http://10.0.1.4:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.0.0.0/16"
admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota"

本文不设计Kubernetes的安全问题,所以在api-server的配置中的admission_control中去掉了和安全相关的内容SecurityContextDeny,ServiceAccount。

配置config,需要指定kubernetes master的地址和端口:

vim /etc/kubernetes/config

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

5 启动服务

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

二 node节点

1 安装软件

yum install -y docker kubernetes-node

2 配置启动docker

和master节点相同:

vim /etc/docker/daemon.json
{"registry-mirrors": ["registry.docker-cn.com"]}
systemctl enable docker
systemctl start docker

3 配置kubelet

在/etc/kubernetes下有3个配置文件:

需要配置config和kubelet两个配置文件,proxy是kube-proxy的配置文件,保留默认就可以。

配置config,需要指定kubernetes master的地址和端口:

vim /etc/kubernetes/config
KUBE_MASTER="--master=http://10.0.1.4:8080"

配置kubelet,指定其工作地址、本机注册到master时的名称、master的地址和端口:

vim /etc/kubernetes/kubelet

KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_HOSTNAME="--hostname-override=hkube02"
KUBELET_API_SERVER="--api-servers=http://10.0.1.4:8080"

另外由于centos的yum源指定的pod-infrastructure的docker镜像需要redhat的证书,会导致安装不成功。为避免这个问题,我们把kubelet中的这个镜像更改成docker-hub中的镜像。

先搜索一下:

docker search pod-infrastructure

选择一个更改,我选择了最后一个:

KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image= docker.io/zengshaoyong/pod-infrastructure:latest "

4 启动服务

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

5 检查

在master节点上查看:

已经看到hkube02和hkube03都注册上来了。

创建一个deployment:

kubectl run nginx –image=nginx

kubectl scale deployment nginx --replicas=3

但网络层面pod只能和本node的其他pod连通。

三 网络

本文将安装flannel,实现跨节点的容器互通。

1 安装

yum install -y flannel

2 配置

Etcd的配置:

etcdctl set /coreos.com/network/config ‘{"Network":"192.168.0.0/16"}‘

配置flannel配置文件:

vim /etc/sysconfig/flannel

systemctl enable flanneld
systemctl start flannel
systemctl restart docker

开启转发:

iptables -P FORWARD ACCEPT

此时可以看到docker0的地址和flannel的端口地址网段相同:

3 验证

部署pod nginx:

kubectl run nginx --image nginx
kubectl scale deployment nginx --replicas=3

登录到hkube03,进入到容器:

通过部署flannel,可以实现各个pod间的网络互通。

总结:

在Centos7上,通过yum安装Kubernetes的各个组件,实现Kubernetes的集群部署。

原文地址:https://www.cnblogs.com/hengwei/p/9093919.html

时间: 2024-11-09 19:11:15

Centos7手工安装Kubernetes集群的相关文章

CentOS7部署Kubernetes集群

CentOS7部署Kubernetes集群 简介 Kubernetes是什么? Kubernetes一个用于容器集群的自动化部署.扩容以及运维的开源平台. 通过Kubernetes,你可以快速有效地响应用户需求: a.快速而有预期地部署你的应用 b.极速地扩展你的应用 c.无缝对接新的应用功能 d.节省资源,优化硬件资源的使用 我们希望培育出一个组件及工具的生态,帮助大家减轻在公有云及私有云上运行应用的负担. Kubernetes特点: a.可移植: 支持公有云,私有云,混合云,多重云(mult

Centos7部署Kubernetes集群+flannel

centos7 部署Kubernetes+flannel https://www.cnblogs.com/zhenyuyaodidiao/p/6500830.html kubernetes集群部署DashBoard http://www.cnblogs.com/zhenyuyaodidiao/p/6500897.html 原文地址:http://blog.51cto.com/lookingdream/2094162

基于 CentOS7 的 Kubernetes 集群

一.环境 相关主机 master 192.168.12.197 minion 192.168.12.198~232 etcd 192.168.12.233~236 相关软件 OS CentOS 7 软件版本: kubernetes-0.19.3 etcd-2.0.9-2.el7.x86_64 docker-1.6.0-11.0.1.el7.centos.x86_64 flannel-0.2.0-7.el7.x86_64 二.部署和配置 2.1 Prerequisites systemctl st

centos7 安装kubernetes集群

https://kubernetes.io/docs/getting-started-guides/centos/centos_manual_config/

Centos7部署kubernetes集群CA证书创建和分发(二)

1.解压软件包 [[email protected] ~]# cd /usr/local/src/ [[email protected] src]# ls k8s-v1.10.1-manual.zip [[email protected] src]# unzip k8s-v1.10.1-manual.zip [[email protected] src]# cd k8s-v1.10.1-manual [[email protected] k8s-v1.10.1-manual]# cd k8s-v

基于kubernetes集群部署DashBoard

在之前一篇文章Centos7部署Kubernetes集群(http://www.cnblogs.com/zhenyuyaodidiao/p/6500830.html)中已经搭建了基本的K8s集群,本文将在此基础之上继续搭建K8s DashBoard. 1.yaml文件 编辑dashboard.yaml,注意或更改以下红色部分: apiVersion: extensions/v1beta1 kind: Deployment metadata: # Keep the name in sync wit

Centos7上安装Kubernetes集群部署docker

一.安装前准备 1.操作系统详情 需要三台主机,都最小化安装 centos7.3,并update到最新 cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core)  角色主机名IP Master      master192.168.1.14 node1    slave-1192.168.1.15 node2slave-2192.168.1.16 2.在每台主机上关闭firewalld改用iptables 输入以下命令,关闭fire

Centos7 下安装入门级别的kubernetes集群

前情说明: 三台Centos7系统的虚拟机(1个master+2个node),三台机器上的防火墙,SELINUX全部关掉.我的实验坏境可以上网,默认的YUM源就可以用. 1.什么是kubernetes Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg).在Docker技术的基础上,为容器化的应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性. Kubernetes优势: - 容器编排         - 轻量级

实战4节点Centos7.3 安装Kubernetes集群

Kubernetes集群安装部署 Kubernetes集群组件: -Master节点 - etcd 一个高可用的K/V键值对存储和服务发现系统 - kube-apiserver 提供kubernetes集群的API调用 - kube-controller-manager 确保集群服务 - kube-scheduler 调度容器,分配到Node -Minion节点 - flannel 实现夸主机的容器网络的通信 - kubelet 在Node节点上按照配置文件中定义的容器规格启动容器 - kube