Kubernets集群管理

1、基础命令:kubectl管理集群资源命令

[root@master ~]# kubectl get nodes

NAME STATUS ROLES AGE VERSION

kuberthe Ready <none> 29d v1.10.0

kubertwo Ready <none> 29d v1.10.0

master Ready master 29d v1.10.0

[root@master ~]# kubectl cluster-info

[root@master ~]# kubectl get nodes

NAME STATUS ROLES AGE VERSION

kuberthe Ready <none> 29d v1.10.0

kubertwo Ready <none> 29d v1.10.0

master Ready master 29d v1.10.0

 

[root@master ~]# kubectl get node kubertwo 查看节点具体状态明细

NAME STATUS ROLES AGE VERSION

kubertwo Ready <none> 30d v1.10.0

[root@master ~]# kubectl describe node kubertwo

Name: kubertwo

Roles: <none>

 

2、kubectl基本单元是pod

[root@master yamls]# kubectl create -f pod.yaml

pod "nginx" created

[root@master yamls]# kubectl get pods

NAME READY STATUS RESTARTS AGE

nginx 0/1 ContainerCreating 0 4s

[root@master yamls]# kubectl describe pods nginx

Name: nginx

Namespace: default

Node: kuberthe/172.16.16.107

Start Time: Thu, 10 May 2018 14:46:08 +0800

Labels: <none>

Annotations: <none>

 

3、kuberctl分布式集群架构

kubernetes分布式集群架构

传统的架构:总体上零散,缺乏架构的整体性和系统性

服务注册表的方式,依然是入侵性的,缺乏直观性

“服务”这个概念本身并没有被作为架构的一等公民

程序架构跟运行时态是相对分散的,无法从根本上保证分布式架构的最初设计

分布式规模部署的难度从未真正彻底解决过

 

a、服务注册和服务发现问题怎么解决?

每个服务分配一个不变的虚拟ip+端口

系统env环境变量里有每个服务的服务名称到ip的映射

 

b、服务的负载均衡问题是怎么解决的?

每个节点上都有一个软件实现的服务代理来实现负载均衡。

 

c、服务的规模部署问题怎么解决的?

目标导向的做法:确定部署实例数,系统自动调度

 

d、服务运维问题如何解决的?

自动监控、自我修复

 

e、架构建议

集中配置,并且实时配置实施生效

 

3、kubernetes集群架构示例

a、创建redis-master pod和服务

先定义Service,然后定义一个RC类创建和控制相关联的pods,或者先定义RC来创建pods,然后与之关联的、Service,这两种方式最终的结果都是一样。

[root@master www]# kubectl get svc redis-master 查看状态

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

redis-master ClusterIP 10.110.205.168 <none> 6379/TCP 2m

[root@master www]# kubectl describe svc redis-master 查看详细状态

Name: redis-master

Namespace: default

Labels: name=redis-master

Annotations: <none>

 

[root@kuberthe ~]# curl -I 127.0.0.1:30001

HTTP/1.1 200 OK

Date: Thu, 10 May 2018 08:27:42 GMT

 

猜你喜欢

转载自www.cnblogs.com/sunnyyangwang/p/9046882.html
今日推荐