发布网友 发布时间:2022-04-22 15:36
共1个回答
热心网友 时间:2023-10-20 06:46
使用Rancher来运行Kubernetes有很多优势。大多数情况下能使用户和IT团队部署和管理工作更加方便。Rancher自动在Kubernetes后端实现etcd的HA,并且将所需要的服务部署到此环境下的任何主机中。在设置访问控制,可以轻易连接到现有的LDAP和AD基础构架。Rancher还可以自动实现容器联网以及为Kubernetes提供负载均衡服务。通过使用Rancher,你将会在几分钟内有拥有Kubernetes的HA实现。命名空间现在我们的集群已经运行了,让我们进入并查看一些基本的Kubernetes资源吧。你可以访问Kubernetes集群也可以直接通过kubectlCLI访问,或者通过RancherUI访问。Rancher的访问管理图层控制可以访问集群,所以你需要在访问CLI前从RancherUI那里生成API密匙。我们来看下第一个Kubernetes资源命名空间,在给定的命名空间中,所有资源名称必须有唯一性。此外,标签是用来连接划定到单个命名空间的资源。这就是为什么同一个Kubernetes集群上可以用命名空间来隔离环境。例如,你想为应用程序创建Alpha,Beta和生产环境,以便可以测试最新的更改且不会影响到真正的用户。最后创建命名空间,复制下面的文本到namespace.yaml文件,并且运行kubectl-fnamespace.yaml命令,来创建一个beta命名空间。kind:NamespaceapiVersion:v1metadata:name:betalabels:name:beta当然你还可以使用顶部的命名空间菜单栏从RancherUI上创建、查看和选择命名空间。你可以使用下面的命令,用kubectl来为CLI交互设置命名空间:$kubectlconfigset-contextKubernetes--namespace=beta.为了验证目前context是否已经被设置好,你可以使用configview命令,验证一下输出的命名空间是否满足你的期望。$kubectlconfigview|grepnamespacecommandnamespace:betaPods现在我们已经定义好了命名空间,接下来开始创建资源。首先我们要看的资源是Pod。一组一个或者多个容器的Kubernetes称为pod,容器在pod里按组来部署、启动、停止、和复制。在给定的每个主机种类里,只能有一个Pod,所有pod里的容器只能在同一个主机上运行,pods可以共享网络命名空间,通过本地主机域来连接。Pods也是基本的扩展单元,不能跨越主机,因此理想状况是使它们尽可能接近单个工作负载。这将消除pod在扩展或缩小时产生的副作用,以及确保我们创建pods不太耗资源而影响到主机。我们来给名为mywebservice的pod定义,在规范命名web-1-10中它有一个容器并使用nginx容器镜像,然后把端口为80下的文本添加至pod.yaml文档中。apiVersion:v1kind:Podmetadata:name:mywebservicespec:containers:-name:web-1-10image:nginx:1.10ports:-containerPort:80使用kubetlcreate命令创建pod,如果您使用set-contextcommand设置了您的命名空间,pods将会在指定命名空间中被创立。在通过运行pods命令去验证pod状态。完成以后,我们可以通过运行kubetldelete命令删除pod。$kubectlcreate-f./pod.yamlpod"mywebservice"created$kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEmywebservice1/1Running037s$kubectldelete-fpod.yamlpod"mywebservice"deleted在RancherUI中查看pod,通过顶端的菜单栏选择Kubernetes>Pods。