基于二进制包安排k8集群2装置etcd存储及docker装置
泉源:界面新闻2026-07-21 11:01:54
字号
超大
标准

在现代化应用架构中,容器化手艺和微效劳架构已经成为主流。Kubernetes(简称K8s)作为一个开源的容器编排平台,能够帮?助开发者自动化地安排、扩展和治理容器化应用。而ETCD作为K8s的要害组件之一,则是一个漫衍式键值存储,用于存储集群的数据。

Docker则是实现容器化的?焦点工具。本文将详细先容怎样基于二进制包举行K8集群的安排,并装置ETCD存储及Docker。

一、情形准备?

1.硬件要求

最小设置:4台物理效劳器,每台至少设置2核CPU和4GB内存。推荐设置:8台物理效劳器,每台至少设置4核CPU和8GB内存。

2.网络情形

确保所有效劳器能够相互会见,建议使用专用网络。设置好DNS,并?确保?每台效劳器有一个唯一的IP地点。

3.软件情形

操作系统:推荐使用CentOS7或Ubuntu18.04。网络:开启并设置好SELinux为permissive模式。时间同步:装置并设置NTP,包管所有效劳器时间一致。

二、K8集群的安排

1.下载并装置Kubernetes二进制包

我们需要下载并装置Kubernetes的二进制包?梢酝ü俜酵净袢∽钚掳姹镜亩进制包。

#下载Kubernetes二进制包curl-LOhttps://storage.googleapis.com/kubernetes-release/release/v1.20.0/bin/linux/amd64/kubeadmcurl-LOhttps://storage.googleapis.com/kubernetes-release/release/v1.20.0/bin/linux/amd64/kubeletcurl-LOhttps://storage.googleapis.com/kubernetes-release/release/v1.20.0/bin/linux/amd64/kubectl#给予执行权限chmod+x./kubeadm./kubelet./kubectl#将二进制文件移动到/usr/local/binsudomv./kubeadm/usr/local/bin/kubeadmsudomv./kubelet/usr/local/bin/kubeletsudomv./kubectl/usr/local/bin/kubectl

2.初始化K8集群

选择一台节点作为控制平台(Master节点),其他节点则为事情节点(Worker节点)。首先在Master节点上举行初?始化:

#初始化Kubernetes集群sudokubeadminit--pod-network-cidr=10.244.0.0/16

初始化完成后,需要将kubeconfig文件复制到外地:

mkdir-p$HOME/.kubesudocp-i/etc/kubernetes/admin.conf$HOME/.kube/configsudochown$(id-u):$(id-g)$HOME/.kube/config

3.装置网络插件

在本例中,我们将使用Flannel作为网络插件。装置Flannel:

kubectlapply-fhttps://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

4.加入Worker节点

在Master节点上获取加入Worker节点的下令:

kubeadmtokencreate--print-join-command

然后在每个Worker节点上运行以下下令加入集群:

sudokubeadmjoin:--token--discovery-token-ca-cert-hashsha256:

三、装置ETCD存储

ETCD是一个漫衍式的键值存储,用于存储Kubernetes集群的数据。我们将在Master节点上装置ETCD。

1.下载ETCD二进制包

curl-LOhttps://github.com/etcd-io/etcd/releases/download/v3.4.13-1/etcd-v3.4.13-linux-amd64.tar.gztar-xvfetcd-v3.4.13-linux-amd64.tar.gz

2.设置ETCD

建设ETCD的设置文件etcd.yml:

#etcd.ymletcd:name:etcddata-dir:/var/lib/etcdlisten-client-urls:http://0.0.0.0:2379,http://0.0.0.0:2380advertise-client-urls:http://:2379,http://:2380listen-peer-urls:http://0.0.0.0:2379initial-advertise-peer-urls:http://:2379initial-cluster:etcd1=http://:2379,etcd2=http://:2379,etcd3=http://:2379initial-cluster-token:etcd-cluster-1initial-cluster-state:newsnapshot-count:10000

3.启动ETCD

在Master节点上启动ETCD:

sudoetcd--config-fileetcd.yml

四、装置Docker

Docker是实现容器化应用的焦点工具,我们将在所有节点上装置Docker。

1.装置Docker

在CentOS上装置Docker:

sudoyuminstall-yyum-utilssudoyum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.reposudoyuminstall-ydocker-cedocker-ce-clicontainerd.io

在Ubuntu上装置Docker:

sudoapt-getupdatesudoapt-getinstall-yapt-transport-httpsca-certificatescurlgnupg-lzmacurl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|sudoapt-keyadd-sudoadd-apt-repository"deb[arch=amd64]https://download.docker.com/linux/ubuntu$(lsb_release-cs)stable"sudoapt-getupdatesudoapt-getinstall-ydocker我们将详细先容怎样在集群中运行Docker容器,并怎样将ETCD集成到Kubernetes中,以确保数据的高可用性和一致性。

###五、运行Docker容器Docker容器是运行应用的最小单位,我们将在K8s集群中运行Docker容器。我们需要在外地准备好Docker镜像。####1.准备Docker镜像假设我们要运行一个简朴的Nginx容器,首先在外地拉取Nginx镜像:

bashdockerpullnginx

####2.安排Nginx容器到K8s集群在K8s集群中,我们需要建设一个Deployment和Service来运行Nginx容器。创?建NginxDeployment:

yaml

nginx-deployment.yml

apiVersion:apps/v1kind:Deploymentmetadata:name:nginx-deploymentspec:replicas:3selector:matchLabels:app:nginxtemplate:metadata:labels:app:nginxspec:containers:-name:nginximage:nginxports:-containerPort:80

建设NginxService:

yaml

nginx-service.yml

apiVersion:v1kind:Servicemetadata:name:nginx-servicespec:selector:app:nginxports:-protocol:TCPport:80targetPort:80

应用这些设置:

bashkubectlapply-fnginx-deployment.ymlkubectlapply-fnginx-service.yml

###六、集成ETCD到Kubernetes为了确保Kubernetes的数据高可用,我们需要将ETCD集成到?Kubernetes中。这是通过Kube-APIServer中的ETCD存储插?件来实现的。####1.启动Kube-APIServer并设置ETCD存储在Master节点上,我们需要在Kube-APIServer的启动设置中加入ETCD存储选项。

编辑Kube-APIServer的启动剧本:

bashsudonano/etc/systemd/system/kube-apiserver.service.d/20-etcd.conf

添加以下内容:

ini[Service]ExecStart=ExecStartPre=/usr/share/kube-apiserver/etcd-snapshot.shExecStart=/usr/local/bin/kube-apiserver\--etcd-servers=http://:2379\--etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt\--etcd-keyfile=/etc/kubernetes/pki/etcd/etcd.key\--etcd-certfile=/etc/kubernetes/pki/etcd/etcd.crt\--authorization-mode=Webhook\--service-account-issuer=kubernetes.default.svc.cluster.local\--service-account-secret-key=/etc/kubernetes/pki/etcd/etcd-token.key\--service-account-lookup-path=/etc/kubernetes/pki/etcd/tokens\--service-account-auth-provider=kubeconfig=/etc/kubernetes/pki/etcd/kubeconfig

####2.启动Kube-APIServer重启Kube-APIServer效劳:

bashsudosystemctldaemon-reloadsudosystemctlrestartkube-apiserver

###七、验证集群设置我们需要验证K8s集群和ETCD的设置是否正常?。####1.检查集群状态使用以下下令检查集群状态:

bashkubectlgetnodeskubectlgetpods-owide

####2.检查ETCD康健状态在Master节点上,可以使用以下下令检查ETCD的康健状态:

bashetcdctlclusterhealthetcdctlendpointls

####3.测?试Nginx效劳使用以下下令测试Nginx效劳是否正常运行:

bashcurlhttp://```

若是你看到Nginx的接待页面,则说明我们的集群设置乐成。

通过以上办法,我们乐成地基于二进制包安排了K8s集群,并装置了ETCD存储和Docker。这种设置能够为我们的应用提供高可用性和可扩展性,同时也为我们的开发和运维事情提供了便当。希望本文能够对你有所资助,若是有任何问题,接待在谈论区提问。

校对:;菝(1alGM7r7WBDKbl7iQddh7lqqus6E37PuUxv)

? 美王法<官>驳回马斯克旗下xAI对OpenAI提出的商业窃密诉讼  纪宁说,现在中国青少年网球尤其是女子青少年网球,已经成为体育职业化和商业化领域一个风口。郑钦文夺冠能增进更多中国青少年加入网球运动。与此同时,中国网球训练园地和角逐园地硬件条件以及软件设施也在爆发重大转变,网球经济蕴含的重大空间也随之逐步释放出来。
基于二进制包安排k8集群2装置etcd存储及docker装置图片
? “:错位突围”电池赛道 多氟多:要么不做,要做就做到全球领先  [环球时报综合报道]“一段时间以来,比亚迪、吉祥等中国自主品牌的崛起给不少外国汽车品牌带来压力。”美国CNBC网站18日报道称,美银证券汽车工业剖析师约翰·墨菲当天在美国汽车媒体协会有关活动中体现,美国底特律三巨头(即通用汽车、福特汽车和斯特兰蒂斯)应“尽快”退出中国市场。他同时忠言说,美国三大车企需要接纳更严肃的步伐削减开支,尤其是在内燃机营业方面,由于这是现在利润的主要泉源。
?? ;菝记者 何伟 摄
责任编辑: ;菝
为你推荐
用户谈论
登录后可以讲话
网友谈论仅供其表达小我私家看法,并不批注证券时报态度
暂无谈论
海南.自贸看法震荡走强 罗牛山等多股涨停
网站地图