Kubernetes+etcd+docker简单使用

本文档详细介绍了在一个三主机环境中,如何搭建Kubernetes+etcd+docker集群。首先,明确了各主机的角色分配,接着重点阐述了etcd集群的配置,包括修改配置参数和启动服务。然后,逐步讲解了kubernetes服务端的搭建,涉及apiserver、controller-manager和config的参数设置。接下来,介绍了nodes节点的安装配置,包括kubernetes-nodes、docker和flanneld的安装与配置。最后,提到了由于网络问题,需要手动下载dashboard镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、三台主机的职责如下所示:

host 192.168.0.217 安装etcd kubernetes-master kubernetes-node flannel docker
host 192.168.0.218 安装etcd kubernetes-node flannel docker
host 192.168.0.218 安装etcd kubernetes-node flannel docker

2、etcd集群的配置

所有节点都安装

yum install etcd  -y

安装完毕后开始修改参数
首先我们修改etcd的配置参数,打开/etc/etcd/etcd.conf,修改以下参数,另外两个节点也类似的配置

[root@controller ~]# cat /etc/etcd/etcd.conf |grep -v '^#'
ETCD_NAME=etcd217
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.0.217:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.0.217:2380"
ETCD_INITIAL_CLUSTER="etcd217=http://192.168.0.217:2380,etcd218=http://192.168.0.218:2380,etcd219=http://192.168.0.219:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.0.217:2379"

保存好后继续执行以下命令

systemctl enable etcd
systemctl start etcd

3、kubernetes服务端的搭建

在centos中已经添加了kubernetes-master
在安装之前我们先执行以下命令用于更新我们的镜像源
yum update
接着在host 192.168.0.217上执行
yum install kubernetes-master -y
接着我们修改kubernetes server的参数
先打开/etc/kubernetes/apiserver文件修改一下几行

[root@controller ~]# cat /etc/kubernetes/apiserver |grep -v '^#'|grep -v '^$'
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.0.217:2379,http://192.168.0.218:2379,http://192.168.0.219:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=192.168.0.0/16"
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
KUBE_API_ARGS=""

第二行设置–service-cluster-ip-range的这个192.168.0.0/16参数你们根据自己的情况去设置,我是因为自己的虚拟机地址网段在这里面所以这样设置的。
设置/etc/kubernetes/controller-manager文件里的参数

[root@controller ~]# cat /etc/kubernetes/controller-manager |grep -v '^#'|grep -v '^$'
KUBE_CONTROLLER_MANAGER_ARGS="--node-monitor-grace-period=10s --pod-eviction-timeout=10s"

设置 /etc/kubernetes/config 文件里的参数

[root@controller ~]# cat /etc/kubernetes/config |grep -v '^#'|grep -v '^$'
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://192.168.0.217:8080"

到这里为止我们etcd和kubernetes的服务端设置就结束了,接着我们要启动kubernetes server服务执行下面的命令:

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

以上就是我们需要在kubernetes服务端需要完成的安装配置。
还需要执行下面命令:

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

4、kubernetes nodes安装配置

在这里我们以host 192.168.0.218节点来讲解如何配置kubernetes nodes节点,另外两个节点也类似
我们需要在所有nodes节点上安装kubernetes-nodes以及docker还有flanneld一键式安装如下:

yum install kubernetes-node flannel docker -y

安装完后我们先对docker进行配置执行以下

systemctl enable docker
systemctl start docker

接着我们需要配置flanneld,修改/etc/sysconfig/flanneld文件配置如下:

[root@host218 ~]# cat /etc/sysconfig/flanneld |grep -v '^#'|grep -v '^$'
FLANNEL_ETCD_ENDPOINTS="http://192.168.0.217:2379,http://192.168.0.218:2379,http://192.168.0.219:2379"
FLANNEL_ETCD_PREFIX="/coreos.com/network"

然后启动flanneld服务

systemctl enable flanneld.service
systemctl restart flanneld.service
systemctl restart docker

接着对kubernetes node配置文件进行修改
修改/etc/kubernetes/config跟上面的修改一致;

[root@host218 ~]# cat /etc/kubernetes/config |grep -v '^#'|grep -v '^$'
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://192.168.0.217:8080"

/etc/kubernetes/kubelet文件进行以下修改:

[root@host218 ~]# cat /etc/kubernetes/kubelet |grep -v '^#'|grep -v '^$'
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_HOSTNAME="--hostname-override=192.168.0.218"
KUBELET_API_SERVER="--api-servers=http://192.168.0.217:8080"
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
KUBELET_ARGS=""

修改完后保存退出并启动服务

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

启动节点都按照这样的设置就可以完成

5、安装dashboard

由于被墙,所以需要先下载镜像

docker pull mritd/kubernetes-dashboard-amd64:v1.4.0
docker pull registry.access.redhat.com/rhel7/pod-infrastructure

wget https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml
vi kubernetes-dashboard.yaml
        ...
        image: docker.io/mritd/kubernetes-dashboard-amd64:v1.4.0
        ...
        - --apiserver-host=http://192.168.0.217:8080
        ...


kubectl create -f  kubernetes-dashboard.yaml 

在浏览器 192.168.0.217:8080/ui
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值