青蛙小白

#Kubernetes

← 全部文章

从集群外部访问Kubernetes Service

Kubernetes通过Service资源在Kubernetes集群内针对容器实现了服务发现和负载均衡。 如果服务要暴露到集群外部,从集群外部访问服务,需要借助一些集群外部提供的负载均衡策略。 先来看一下Kubernetes Service的类型: Kubernetes Service类型 ClusterIp:默认类型,自动分配集群内部可以访问的虚拟IP, ClusterIp NodePort:基于ClusterIp提供的功能,为Service在Kubernetes集群的每个Node上绑定一个端口,即NodePort,集群外部可基于任何一个NodeIP:NodePort的形式来访问Service。Service在每个Node的NodePort端口上都可用。 LoadBalancer:基于NodePort提供的功能,借助云服务供应商提供的外部负载均衡器,将请求转发到各个NodeIp:NodePort。只有特定的云服务商和GCE(Google Container Engine)支持该方案。 Service提供的负载均衡功能,但在使用上有以下限制:

在Kubernetes上运行SonarQube

文本描述如何在Kubernetes上运行一个Sonarqube和MySQL。 准备 kubernetes集群构成如下,这里是单机的试验环境。 kubectl get nodes NAME STATUS AGE cent0 Ready,master 1h mysql的pod mysql-rc.yaml apiVersion: v1 kind: ReplicationController metadata: name: mysql spec: replicas: 1 selector: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:5.7 ports: - containerPort: 3306 env: - name: MYSQL_ROOT_PASSWORD value: "123456" - name: MYSQL_DATABASE value: sonardb - name: MYSQL_USER value: sonar - name: MYSQL_PASSWORD value: sonar 创建RC

Kubernetes资源对象之Pod

Pod基本概念 Pod是Kubernetes集群中最基本的资源对象。每个Pod由一个或多个业务容器和一个根容器(Pause容器)组成。 Kubernetes为每个Pod分配了唯一的IP,即Pod IP,Pod里的多个容器共享这个IP。 kubectl get pods -o wide --all-namespaces | grep dashboard kube-system kubernetes-dashboard-3109525988-5vnpv 1/1 Running 1 7h 10.244.0.8 cent0 实际上一个Pod内的多个容器共享相同的网络命名空间、IP、端口,也就是说这些容器之间能通过localhost来通信,此外这些容器还可以共享相同存储卷。

Kubernetes资源对象之Service

Kubernetes Service 当应用由单体架构转向微服务架构时,应用被拆成很多小的互相协作的微服务,每个服务会以多个副本运行,副本数量会随着系统所需的处理能力进行变化,这就是微服务的伸缩性。 微服务的负载均衡器对实现伸缩性起了十分重要的作用。 Service是Kubernetes最重要的资源对象。Kubernetes中的Service对象可以对应微服务架构中的微服务。Service定义了服务的访问入口,服务的调用者Pod通过这个地址访问Service后端的Pod副本实例。 Service通过Label Selector同后端的Pod副本建立关系,Replication Controller保证后端Pod副本的数量,也就是保证服务的伸缩性。