咱们再来回顾一下 K8S 集群架构的组件,在网上找一张集群架构图说明一波
文章图片
1、master 组件
- apiserver
- shcheduler
- controller-manager
- etcd
2、node 组件,工作节点
- kubelet
- kube-proxy
k8s 核心概念
1、Pod
- 最小部署的逻辑单元
- 是一组容器的集合
- 共享网络
- 生命周期短暂
- 确保预期的 Pod 副本数量
- 无状态应用部署 / 有状态应用部署
- 确保所有 node 运行同一个 Pod
- 执行一次性任务和定时任务
- 定义一组 Pod 的访问规则
- 使用官方提供的 minikube
- 使用 kubeadmin 进行部署,k8s的部署工具,跑在 k8s 里面,这个使用起来相对简单
官网地址为:https://kubernetes.io/docs/re...
- 自己使用 kubernetes 二进制方式安装部署 (这种部署方式,我们学习的时候一定要走这个步骤,一步一步的去搭建,才能遇到很多问题,进而解决他,熟悉他)
minikube
【【K8S 系列】k8s 学习二,kubernetes 核心概念及初步了解安装部署方式】
文章图片
点击 Launch Terminal ,可以查看到如下界面
文章图片
官方给我们提供的 minikube ,版本是 v1.8.1
系统是 Ubuntu 18.04
CPU 2 核
内存 2 G
磁盘 145 G 左右
Kubernetes 版本 v1.17.6
Docker 版本 19.03.6
咱们可以使用
kubectl get pods -n kube-system
查看一下 pod 节点文章图片
kubeadmin 进行部署
使用 kubeadmin 来进行部署,相对使用二进制来部署就会简单容易一些,先来规划一下部署方案
平台规划
单 master 搭建方式
文章图片
多 master 搭建方式
文章图片
kubeadmin 开始部署
使用 kubeadmin 部署 k8s 环境,通过如下 2 条指令即可完成 kubernetes 的部署:
- kubeadm init
- kubeadm join
测试环境硬件要求
master 节点: 2 核,2G,磁盘 20 G
node 节点:4 核,8G,磁盘 80 G
- 一台或者多台机器,操作系统自选,可以是 ubuntu ,可以是 centos
- 硬件配置如上
- 集群中所有的节点网络互通
- 可以访问外网,可以拉取镜像
- 禁止 swap 分区
官方提供了 4 种方式来安装 kubecrl
- 用 curl 在 Linux 系统中安装 kubectl
- 用原生包管理工具安装
- 用其他包管理工具安装
- 作为谷歌云 SDK 的一部分,在 Linux 中安装
1、用如下命令下载最新的 kubectl 版本
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
2、下载 kubectl 校验和文件
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
3、验证 kubectl 的可执行文件
echo "$(
# echo "$(
出现上述情况,为验证通过
4、安装 kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
5、查看咱们安装的版本
kubectl version --client
# kubectl version --client
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.0", GitCommit:"c2b5237ccd9c0f1d600d3072634ca66cefdf272f", GitTreeState:"clean", BuildDate:"2021-08-04T18:03:20Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}
- GitVersion
git 的版本是 v1.22.0
- GoVersion
go 的版本是 1.16.6
- BuildDate
构建时间为 2021-08-04T18:03 ,还算挺新
配置一下 kubectl 自动补全功能
kubectl 的自动补全功能依赖 bash-completion,因此需要我们安装他
1、安装 bash-completion
apt-get install bash-completion
2、启动 kubectl 自动补全功能
在 ~/.bashrc
中导入(source)补全脚本
echo 'source <(kubectl completion bash)' >>~/.bashrc
将补全脚本添加到目录 /etc/bash_completion.d
中
kubectl completion bash >/etc/bash_completion.d/kubectl
如果 kubectl 有关联的别名,你可以扩展 shell 补全来适配此别名
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -F __start_kubectl k' >>~/.bashrc
kubernetes 的安装部署方式步骤相对有点多,这个必须要自己一步一步的实践,否则是学不到东西的,大家可以多在官网上摸摸鱼
https://kubernetes.io/docs/ta...
文章图片
参考资料:
kubernetes docs
欢迎点赞,关注,收藏
朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力
文章图片
好了,本次就到这里
技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。
我是小魔童哪吒,欢迎点赞关注收藏,下次见~
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- linux|2022年云原生趋势
- 个人日记|K8s中Pod生命周期和重启策略
- k8s|Scheduling Framework 与 Extender对比及详细介绍
- k8s|k8s(六)(配置管理与集群安全机制)
- 云原生应用之旅—Kubernetes成长记 | 第十站(获取云原生旅行秘籍)
- Kubernetes实战|Kubernetes实战(十九)-CA证书制作
- Kubernetes实战|Kubernetes实战(二十)- Etcd 集群部署
- Kubernetes实战|Kubernetes实战(二十二)-kubernetes二进制文件方式部署集群(下)
- 如何彻底删除EKS中一直卡在Terminating的Namespace