0%

一、 service作用

使用kubernetes集群运行工作负载时,由于Pod经常处于用后即焚状态,Pod经常被重新生成,因此Pod对应的IP地址也会经常变化,导致无法直接访问Pod提供的服务,Kubernetes中使用了Service来解决这一问题,即在Pod前面使用Service对Pod进行代理,无论Pod怎样变化 ,只要有Label,就可以让Service能够联系上Pod,把PodIP地址添加到Service对应的端点列表(Endpoints)实现对Pod IP跟踪,进而实现通过Service访问Pod目的。

  • 通过service为pod客户端提供访问pod方法,即可客户端访问pod入口

  • 通过标签动态感知pod IP地址变化等

  • 防止pod失联

  • 定义访问pod访问策略

  • 通过label-selector相关联

  • 通过Service实现Pod的负载均衡(TCP/UDP 4层)

  • 底层实现由kube-proxy通过userspace、iptables、ipvs三种代理模式

    阅读全文 »

介绍

kubernetes是具有中心节点的分布式架构,存在master节点、node节点

截图11

各个组件的基本功能:

  • API Server:作为K8s通讯的核心组件,K8s内部交互以及接收发送指令的组件。
  • controller-manager:作为K8s的核心组件,主要做资源调度,根据集群情况分配资源
  • etcd:一个key-value的数据库,存储存储集群的状态信息
  • scheduler:负责调度每个工作节点
  • cloud-controller-manager:负责调度其他云服务产品
  • kubelet:管理Pods上面的容器。
  • kube-proxy:负责处理其他Slave或客户端的请求。
  • Pod:可以理解为就是运行的容器

master是集群管理中心,它的组件可以集群内任意节点上运行,但是为了方便管理,一般是在某一台主机上运行所有的master组件,并且不在该主机是上运行用户容器

阅读全文 »

虚拟机环境准备

主机准备

虚拟机主机名 角色
k8s-master01 master
k8s-node01 node
k8s-node02 node

修改主机名称

1
2
3
4
#修改主机名称
hostnamectl set-hostname 修改之后的主机名
#重启生效
reboot
阅读全文 »

标签

k8s集群如果由大量节点组成,可将节点打上对应的标签,然后通过标签进行筛选及查看,更好的进行资源对象的相关选择与匹配

查看节点标签信息

1
2
3
4
5
[root@k8s-master01 kubernetes]# kubectl get nodes --show-labels
NAME STATUS ROLES AGE VERSION LABELS
k8s-master01 Ready control-plane,master 12h v1.21.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master01,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=,node.kubernetes.io/exclude-from-external-load-balancers=
k8s-node01 Ready <none> 78m v1.21.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node01,kubernetes.io/os=linux
k8s-node02 Ready <none> 77m v1.21.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node02,kubernetes.io/os=linux
阅读全文 »

一、YAML介绍

YAML 的意思是:仍是一种标记语言,但为了强调这种语言以数据做为中心,而不是以标记语言为重点。是一个可读性高,用来表达数据序列的格式。

二、基本语法

1.低版本缩进时不允许使用Tab键,只允许使用空格

2.缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

3.# 标识注释,从这个字符一直到行尾,都会被解释器忽略

阅读全文 »

一、工作负载(workloads)

参考链接:https://kubernetes.io/zh/docs/concepts/workloads/

工作负载(workload)是在kubernetes集群中运行的应用程序。

无论你的工作负载是单一服务还是多个一同工作的服务构成,在kubernetes中都可以使用pod来运行它。

在 Kubernetes 中,Pod 代表的是集群上处于运行状态的一组 容器 的集合。

阅读全文 »

查看集群信息

1
2
3
4
5
[root@k8s-master01 ~]# kubectl cluster-info
Kubernetes control plane is running at https://192.168.1.19:6443
CoreDNS is running at https://192.168.1.19:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

查看节点信息

节点信息

1
2
3
4
5
6
7
8
9
10
11
[root@k8s-master01 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master01 Ready control-plane,master 11h v1.21.0
k8s-node01 Ready <none> 64m v1.21.0
k8s-node02 Ready <none> 63m v1.21.0

[root@k8s-master01 ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master01 Ready control-plane,master 11h v1.21.0
k8s-node01 Ready <none> 64m v1.21.0
k8s-node02 Ready <none> 63m v1.21.0
阅读全文 »

一、命名空间(namespace)作用

  • Namespace是对一组资源和对象的抽象集合.
  • 常见的 pod, service, deployment 等都是属于某一个namespace的(默认是 default)
  • 不是所有资源都属于namespace,如nodes, persistent volume,namespace 等资源则不属于任何 namespace

二、查看namespace

1
2
3
4
5
6
[root@k8s-master1 ~]# kubectl get namespaces       # namespaces可以简写为namespace或ns
NAME STATUS AGE
default Active 130m # 所有未指定Namespace的对象都会被默认分配在default命名空间
kube-node-lease Active 130m
kube-public Active 130m # 此命名空间下的资源可以被所有人访问
kube-system Active 130m # 所有由Kubernetes系统创建的资源都处于这个命名空间
阅读全文 »