01 基本概念
-
Pod:K8s最小部署单元,一组容器的集合
-
Deployment:最常见的控制器,用于更高级别部署和管理Pod
-
Service:为一组Pod提供负载均衡,对外提供统一访问入口
-
Label :标签,附加到某个资源上,用于关联对象、查询和筛选
-
Namespaces :命名空间,将对象逻辑上隔离,也利于权限控制
-
Context 上下文,通过 kubeconfig 文件中的 context 元素,使用简便的名称来对访问参数进行分组。每个上下文都有三个参数:cluster、namespace 和 user。默认情况下,kubectl 命令行工具使用 当前上下文 中的参数与集群进行通信。
02 常用命令
2.1 自动补全工具
# 安装依赖包
yum install bash-completion
# 刷新并配置开机启动
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~./bashrc
2.2 kubeconfig配置文件
可以通过以下命令查看切换上下文
# 查看当前所在的context
kubectl config current-context
output: kubernetes-admin@kubernetes
# 使用指定的context
kubectl config use-context kubernetes-admin@kubernetes
output: Switched to context "kubernetes-admin@kubernetes".
2.2 命令集合
03 nginx 部署测试
集群外节点访问
外部流量访问K8s的一种方式,即nodeIP:nodePort,是提供给外部流量访问K8s集群资源的一种方式。
例如需要暴露服务的端口给外界访问的话,需要首先实现Kubenetes 里 Pod 和 Service 绑定
# 1 创建一个叫nginx-deployment的deployment
kubectl create deploy nginx-deployment --image=nginx
# 2 然后创建一个同名的 service
kubectl create service nodeport nginx-deployment --tcp 80:80
# 3 查看服务
kubectl get svc
# 4 得到名称为 nginx-deployment 对外暴露的端口号:32617:
# 5 通过虚拟机 ip 加端口号 32617,实现集群外访问