我之前的文章 如何在Kubernetes里创建一个Nginx service介绍了如何创建一个Kubernetes pod和service,使用的方法是命令kubectl run。
本文介绍另一种方式,通过这种方式来学习Kubernetes里pod和对应的service是如何绑定的。
首先使用下面的命令行创建一个名称为jerry-nginx-1982的deployment:
kubectl create deployment jerry-nginx-1982 --image=nginx
然后使用命令行kubectl get deployment 得到创建好的deployment:
然后创建一个同名的service,类型为nodeport。
kubectl create service nodeport jerry-nginx-1982 --tcp 80:80
创建完成后,使用命令行kubectl get svc得到名称为jerry-nginx-1982对外暴露的端口号:31954:
然后就能通过这个端口号访问nginx server了:
那么这两个同名的pod和service是如何关联的呢?
首先打开kubernetes dashboard,找到之前创建的pod:
其明细为:jerry-nginx-1982-67cb658cb8-9hl99
再打开同名service:
再打开这个service里的pod,发现就是我们前面找到的jerry-nginx-1982-67cb658cb8-9hl99,说明pod和service是通过名称关联的。
我们可以做一个negative测试,直接创建一个名为test的service,但不给它预先创建名为test的pod:
kubectl create service nodeport test --tcp 80:80
service创建成功后,打开这个service,发现里面没有分配任何pod:
这个结果和我们预测的一致。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
相关推荐
综上所述,Kubernetes在存储领域的设计和实现覆盖了从简单的文件读写到复杂的有状态服务部署等多个方面。通过灵活的存储插件机制、声明式的资源配置以及高级的动态供给功能,Kubernetes为用户提供了一个强大且可扩展...
RBAC 通过角色绑定和集群角色绑定来控制用户对资源的访问权限。 Kubernetes 应用示例 Kubernetes 应用示例包括部署 Nginx 服务、使用卷挂载、弹性伸缩和滚动升级版本等。Kubernetes 提供了多种应用示例和解决方案...
CNI(Container Network Interface)插件实现了Kubernetes的网络策略,允许自定义网络配置和实现。 **60. 集群管理与运维(61-70)** - **描述如何升级Kubernetes集群。** - 升级过程通常涉及将控制平面组件和...
Pods Pod是Kubernetes的基本操作单元,把相关的一个或多个容器构成一个Pod,通常Pod里的容器运行相同的应用。Pod包含的容器运行在同一个Minion(Host)上,看作一个统一管理单元,共享相同的volumes和network ...
8. **StatefulSet**:用于管理有状态应用,如数据库和缓存系统,保证了Pod的顺序创建、持久卷的绑定以及每个Pod的唯一身份。 9. **DaemonSet**:确保所有(或某些)节点上都运行一个副本的 Pod,适合运行守护进程或...
Service 可以将多个 pod 绑定到一个访问接口上,从而提供负载均衡和服务发现的功能。 Ingress Ingress 是一种特殊的 Service,用于暴露应用程序的访问接口于外部。Ingress 可以提供基于域名的路由和负载均衡的功能...
Role 和 ClusterRole 用于定义权限,RoleBinding 和 ClusterRoleBinding 用于将角色绑定到用户或 ServiceAccount。在启用 RBAC 模式后,只有拥有相应权限的用户才能执行 API 操作。 总之,Kubernetes 是一个复杂而...
1. **Kubernetes基础知识**:包括Pod、Service、Deployment、ReplicaSet等核心概念,以及它们在安全上下文中的作用。 2. **网络安全**:如网络策略(Network Policy)的使用,控制流入和流出Pod的网络流量,以及...
3. **资源管理**:了解如何创建和管理各种Kubernetes对象,包括Pod、Service、ConfigMap、Secret等。 4. **网络与服务发现**:理解Kubernetes网络模型,如ClusterIP、NodePort、LoadBalancer等服务类型,以及...
总结来说,要在Kubernetes中实现类似sudo的权限管理,需要综合运用RBAC、服务账户、模拟、自定义资源、第三方工具、策略控制器和审计日志等多种手段。通过这样的方式,可以有效地降低集群管理员的默认权限,只在必要...
Volume是与Pod静态绑定的,如emptyDir(临时存储,随Pod生命周期同步)和hostPath(宿主机目录,持久化但受限于单个节点)。PV是跨节点的,可以在Pod迁移时保持数据,提供了多种类型,如NFS、GlusterFS、Ceph RBD等...
2. **故障排除**:当应用出现问题时,Dashboard提供了一种方便的方式来查看日志、监控资源利用率、检查Pod状态和事件,帮助快速定位和解决问题。此外,它还允许用户执行滚动更新、回滚等操作来修复应用。 3. **集群...
Kubernetes,简称K8s,是一个高度自动化、可扩展的容器管理系统,它提供了一种高效的方式来组织和运行容器化的应用程序。在Kubernetes中,有几个核心概念和机制对于理解其工作原理至关重要。 1. **Persistent ...
- **ServiceAccounts**:定义了Pod如何与Kubernetes API交互。 - **ReplicationControllers 和 ReplicaSets**:确保特定数量的Pod副本始终运行。 - **Jobs**:确保集群中的一组Pod完成指定的任务后退出。 - **Cron...
- **Selector**:用于选择和绑定 Pod 的标签。 - **ConfigMap** 和 **Secrets**:存储非敏感和敏感的配置数据。 - **Limits, Requests, LimitRange**:资源配额管理,限制 Pod 的资源使用。 - **Affinity, Node...
在 Kubernetes 集群中,网络通信是至关重要的部分,它确保了各个Pod和服务之间的顺畅交互。Calico 是一种流行且高效的选择,用于在 Kubernetes 中实现网络策略和网络虚拟化。下面将详细介绍如何安装和配置 Calico ...
通过Kubernetes的Node和Pod概念,可以将容器化应用与虚拟机统一管理,实现自动部署和混合服务通信,提高资源利用率和运维效率。 ### 4. 跨容器和虚拟机的网络服务 - **多租户隔离**:通过Hypervisor和网络策略实现...
在Kubernetes环境中部署MySQL主从复制是一个复杂但重要的任务,涉及到多个Kubernetes组件的使用,如StatefulSet、PersistentVolumeClaim ...通过这种方式,可以实现高可用的MySQL集群,保证数据的安全和业务的连续性。
这包括了解硬件和网络需求,选择合适的操作系统,以及熟悉Kubernetes的基本概念,如Pod、Service、Deployment等。此外,还需要检查所有参与节点的系统更新和安全补丁,确保所有设备都符合Kubernetes的最低系统要求。...
总之,Kubernetes v1.21.14二进制文件是构建和管理Kubernetes集群的关键要素,理解它们的功能和交互方式对于成功部署和维护大规模容器化应用至关重要。通过熟练掌握这些组件,开发者和运维人员能够更好地利用...