本文重点介绍DockerK8S集群环境的构建和分布式应用的部署。原文中的详细介绍根据示例代码非常详细,对大家的学习培训或者工作都有一定的参考价值。有必要的朋友陪我去了解一下。
1.安装docker
yuminstalldocker #起动服务项目 systemctlstartdocker.service systemctlenabledocker.service #检测 dockerversion2.安装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-y2.编辑文件/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:
根据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:demo2.运行命令:
[root@MiWiFi-R3-srv~]#kubectlcreate-fdemo-svc.yaml service"demo"created3.我们可以查询刚刚创建的服务:
这时可以按照ip:30001浏览使用,如图:
如果您不能浏览,您必须关闭防火墙:
systemctlstopfirewalld iptables-PFORWARDACCEPT至此,这篇关于DockerK8S集群环境构建和分布式应用部署的文章已经在这里详细介绍过了。有关DockerK8S集群环境构建的大量信息,请搜索您以前的文章或再次访问下面的相关文章。期待你以后的申请!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)