基本概念
-
Kubernetes Cluster
:集群; -
Kubernetes Master
:主节点。对整个集群进行管理,创建容器、自动发布等; -
Node
:节点,一个个的宿主机; -
Pod
:K8s中整个控制的最小单元(Docker 中是 Container); -
Container
:容器; -
Service
: 将 Pod 进行联通; -
Label
:说明性标签,用它来进行查找和筛选 Pod; -
Replication Controller
:对 Pod 的数量进行监控和维护(控制数量、自动重启等); -
Kubelet
:每个Pod 中一个。用于执行 k8s 相应的命令; -
Kube-proxy
:实现不同主机上 Pod 的通信。
Pod(豆荚):
- Pod 中可以有一个或多个、一种或多种容器,他们的关系就像豆荚与豆子(豆子还可以有黑豆有绿豆)的关系。
- Pod 是 K8s 中小可部署单元;
- 一个 Pod 就是一个进程;
- 各个 Pod 内的容器天然互联互通;
- 每个 Pod 有独立的虚拟 IP ,Pod 间无法直接联通;(需要通过 Service 来互通)
- Pod 内 必须有一个 Pause 容器, Pause 的作用:1. 提供一个共享的网络,2. 提供一个共享的 Volume 空间
k8s 准备安装
- 取两台电脑或虚拟机
- 设置对应的 hostname :
hostnamectl set-hostname <name>
name 取 master 和 nodeN - 设置
/etc/hosts
文件及宿主机的对应关系 - 关闭防火墙(生产环境不要关):
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl disable firewalld
systemctl stop firewalld
k8s 的安装
(参考下VMware中玩centos遇到的问题)
安装方法有四种:
- 使用 kubeadmin 通过离线镜像安装(推荐)
- 购买阿里平台的 k8s
- 二进制包进行安装(如 Github 的 kkubeasz,不推荐)
部署 Deployment
- 通过部署,K8s 向各 node 发送指令创建容器
- 支持 yml 部署脚本
-
kubectl create -f xxx.yml
加载部署脚本,执行部署
kubectl apply -f xxx.yml 按部署配置进行更新(或创建)部署
kubectl get pod [-o wide] # 查看已部署 pod 列表
kubectl describe pod <pod_name> # 查看 pod 详细信息
kubectl logs [-f] <pod_name> # 查看 pod 输出日志
网友评论