Docker+K8S 集群环境搭建及分布式应用部署

Docker+K8S 集群环境搭建及分布式应用部署,第1张

Docker+K8S集群环境搭建及分布式应用部署

本文重点介绍DockerK8S集群环境的构建和分布式应用的部署。原文中的详细介绍根据示例代码非常详细,对大家的学习培训或者工作都有一定的参考价值。有必要的朋友陪我去了解一下。

1.安装docker

yuminstalldocker #起动服务项目 systemctlstartdocker.service systemctlenabledocker.service #检测 dockerversion

2.安装etcd

yuminstalletcd-y #起动etcd systemctlstartetcd systemctlenableetcd #键入以下指令查询etcd身体状况 etcdctl-Chttp://localhost:2379cluster-health #安裝Kubernetes yuminstallkubernetes-y

安装完成后,编辑/etc/kubernetes/apiserver文件,删除KUBE_准入_控制背后的ServiceAccount,比如:

KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"

然后各自启动以下程序流程(主程序):

systemctlstartkube-apiserver systemctlenablekube-apiserver systemctlstartkube-controller-manager systemctlenablekube-controller-manager systemctlstartkube-scheduler systemctlenablekube-scheduler

接下来,启动节点连接点的程序流程:

systemctlstartkubelet systemctlenablekubelet systemctlstartkube-proxy systemctlenablekube-proxy

这样,一个简单的K8S集群环境就已经构建好了,我们可以运行下面的指令来查询集群的情况。


但是,集群环境在这个阶段还不能很好地工作。因为集群中pod的互联网必须统一管理,所以需要创建一个绒布来覆盖互联网。

1.安装法兰绒:

yuminstallflannel-y

2.编辑文件/etc/sysconfig/flanneld以升级以下代码:

--logtostderr=false--log_dir=/var/log/k8s/flannel/--etcd-prefix=/atomic.io/network--etcd-endpoints=http://localhost:2379--iface=enp0s3

其中--如果接口匹配门户的名称。

3.配备etcd中关于flanneld的键

法兰绒使用etcd进行装备,以保证几个法兰绒箱之间装备的一致性,所以必须在etcd上进行以下装备:

etcdctlmk/atomic.io/network/config'{"Network":"10.0.0.0/16"}'

键/atomic.io/network/config对应于上面/etc/sysconfig/法兰绒中的配置项法兰绒_ETCD_前缀。如果不正确,启动将失败)

网络配有子网,子网不能和物理机的IP相抵触,可以随意定义,尽量绕过物理机的IP段。

4.启动已更改的法兰绒,然后重新启动docker和kubernete:

systemctlenableflanneld systemctlstartflanneld servicedockerrestart systemctlrestartkube-apiserver systemctlrestartkube-controller-manager systemctlrestartkube-scheduler systemctlenableflanneld systemctlstartflanneld servicedockerrestart systemctlrestartkubelet systemctlrestartkube-proxy

这样,当您将应用程序部署到Docker容器时,您可以根据物理IP浏览容器。

分布式应用程序部署

1.建立一个基于SpringBoot的架构,这里不做解释。默认设置已经设置好了。
2。用以下示例编写Dockerfile:

#免费下载java8的镜像系统 FROMjava:8 #将本地文件挂上去到/tmp文件目录 VOLUME/tmp #拷贝文档到器皿 ADDdemo-0.0.1-SNAPSHOT.jar/demo.jar #曝露8080端口号 EXPOSE8080 #配备起动器皿后实行的指令 ENTRYPOINT["java","-jar","/demo.jar"]

根据docker构建说明创建镜像系统:

dockerbuild-tdemo.

此时,当您实现docker镜像时,您将看到新构建的镜像系统,如

使用K8S部署springboot

1.创建rc文档演示:

apiVersion:v1 kind:ReplicationController metadata: name:demo spec: #连接点数,设定为好几个能够完成三层交换机实际效果 replicas:1 selector: app:demo template: metadata: labels: app:demo spec: containers: -name:demo #镜像系统名 image:demo #当地有镜像系统就不容易去库房获取 imagePullPolicy:IfNotPresent ports: -containerPort:8080

执行以下指令创建pod:

kubectlcreate-fdemo-rc.yaml

创建成功后,我们可以查询pod:


已创建容器创建提醒。此时可以查询创建日志:


我能看到他的提醒:redhat-cat.crt将不可用。请先根据ll命令检查文件:


可以发现这个文件是一个链接文件,偏向/etc/rhsm/ca/redhat-uep.pem,但是这个文档并不存在。这个文件是怎么来的?答:这样你必须安装rhsm这款手机软件,运行命令安装:

yuminstall*rhsm*-y

等待一段时间后,安装将继续进行。

安装后,执行ll指令查询文件是否存在:

[root@miwifi-R3-SRV~]#ll/etc/rhsm/ca/redhat-uep.pem
LS:无法打开/etc/rhsm/ca/redhat-UEP.PEM:没有文档或文件目录。

你也看到了,还是没有这个文件,只是我们不重视。我们可以手动创建它:

touch/etc/rhsm/ca/redhat-uep.pem

实现以上实际 *** 作后,大家先删除rc,然后创建:

[root@MiWiFi-R3-srv~]#kubectldeletercdemo replicationcontroller"demo"deleted [root@MiWiFi-R3-srv~]#kubectlcreate-fdemo-rc.yaml replicationcontroller"demo"created

等待一段时间后,我们再次查询po,我们发现它已经成功启动:

[root@MiWiFi-R3-srv~]#kubectlgetpo NAMEREADYSTATUSRESTARTSAGE demo-hdmxs1/1Running01米

此时,您不能根据局域网浏览和使用它,您还必须创建服务:

1.创建服务文档demo-svc.yaml:

apiVersion:v1 kind:Service metadata: name:demo spec: type:NodePort ports: -port:8080 targetPort:8080 #连接点曝露给外界的端口号(范畴务必为30000-32767) nodePort:30001 selector: app:demo

2.运行命令:

[root@MiWiFi-R3-srv~]#kubectlcreate-fdemo-svc.yaml service"demo"created

3.我们可以查询刚刚创建的服务:


这时可以按照ip:30001浏览使用,如图:


如果您不能浏览,您必须关闭防火墙:

systemctlstopfirewalld iptables-PFORWARDACCEPT

至此,这篇关于DockerK8S集群环境构建和分布式应用部署的文章已经在这里详细介绍过了。有关DockerK8S集群环境构建的大量信息,请搜索您以前的文章或再次访问下面的相关文章。期待你以后的申请!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/774451.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存