【K8S 系列】k8s 学习二,kubernetes 核心概念及初步了解安装部署方式

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 【K8S 系列】k8s 学习二,kubernetes 核心概念及初步了解安装部署方式

咱们再来回顾一下 K8S 集群架构的组件,在网上找一张集群架构图说明一波

1、master 组件

  • apiserver

集群的统一入口,restful 的方式,最后交给 etcd 存储

  • shcheduler

节点调度,选择 node 节点进行应用部署

  • controller-manager

处理集群中常规后台任务,一个资源对应一个控制器

  • etcd

存储系统,用于保存集群相关的数据

2、node 组件,工作节点

  • kubelet

master 排到 node 节点代表,管理本机的容器

  • kube-proxy

提供网络代理,负载均衡等操作

k8s 核心概念

1、Pod

  • 最小部署的逻辑单元
  • 是一组容器的集合
  • 共享网络
  • 生命周期短暂

2、controller

  • 确保预期的 Pod 副本数量
  • 无状态应用部署 / 有状态应用部署
  • 确保所有 node 运行同一个 Pod
  • 执行一次性任务和定时任务

3、service

  • 定义一组 Pod 的访问规则

Kubernetes 安装方式:

  • 使用官方提供的 minikube
  • 使用 kubeadmin 进行部署,k8s的部署工具,跑在 k8s 里面,这个使用起来相对简单

kubeadmin 提供 kubeadmin init 和 kubeadmin join,用于快速部署 k8s 集群

官网地址为:https://kubernetes.io/docs/reference/setup-tools/kubeadm/

  • 自己使用 kubernetes 二进制方式安装部署 (这种部署方式,我们学习的时候一定要走这个步骤,一步一步的去搭建,才能遇到很多问题,进而解决他,熟悉他)

官方提供的 minikube

minikube

点击 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

创建一个 master 节点

  • kubeadm join <master 节点的IP 和端口>

将 node 节点加入到集群中

测试环境硬件要求

master 节点: 2 核,2G,磁盘 20 G

node 节点:4 核,8G,磁盘 80 G

  • 一台或者多台机器,操作系统自选,可以是 ubuntu ,可以是 centos
  • 硬件配置如上
  • 集群中所有的节点网络互通
  • 可以访问外网,可以拉取镜像
  • 禁止 swap 分区

先来安装一下 kubectl

官方提供了 4 种方式来安装 kubecrl

咱们直接使用第 1 种:

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 "$(<kubectl.sha256) kubectl" | sha256sum --check

# echo "$(<kubectl.sha256) kubectl" | sha256sum --check
kubectl: OK

出现上述情况,为验证通过

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/tasks/tools/install-kubectl-linux/

参考资料:

kubernetes docs

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是小魔童哪吒,欢迎点赞关注收藏,下次见~

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1月前
|
存储 Kubernetes 持续交付
k8s学习
【10月更文挑战第1天】
82 4
|
15天前
|
Kubernetes 负载均衡 Cloud Native
云原生应用:Kubernetes在容器编排中的实践与挑战
【10月更文挑战第27天】Kubernetes(简称K8s)是云原生应用的核心容器编排平台,提供自动化、扩展和管理容器化应用的能力。本文介绍Kubernetes的基本概念、安装配置、核心组件(如Pod和Deployment)、服务发现与负载均衡、网络配置及安全性挑战,帮助读者理解和实践Kubernetes在容器编排中的应用。
47 4
|
16天前
|
Kubernetes 监控 Cloud Native
云原生应用:Kubernetes在容器编排中的实践与挑战
【10月更文挑战第26天】随着云计算技术的发展,容器化成为现代应用部署的核心趋势。Kubernetes(K8s)作为容器编排领域的佼佼者,以其强大的可扩展性和自动化能力,为开发者提供了高效管理和部署容器化应用的平台。本文将详细介绍Kubernetes的基本概念、核心组件、实践过程及面临的挑战,帮助读者更好地理解和应用这一技术。
48 3
|
7天前
|
Kubernetes Ubuntu Linux
我应该如何安装Kubernetes
我应该如何安装Kubernetes
|
30天前
|
Kubernetes Ubuntu Docker
从0开始搞K8S:使用Ubuntu进行安装(环境安装)
通过上述步骤,你已经在Ubuntu上成功搭建了一个基本的Kubernetes单节点集群。这只是开始,Kubernetes的世界广阔且深邃,接下来你可以尝试部署应用、了解Kubernetes的高级概念如Services、Deployments、Ingress等,以及探索如何利用Helm等工具进行应用管理,逐步提升你的Kubernetes技能树。记住,实践是最好的老师,不断实验与学习,你将逐渐掌握这一强大的容器编排技术。
113 1
|
14天前
|
存储 Kubernetes 调度
K8S中的核心概念
【10月更文挑战第26天】云原生环境下的安全问题易被忽视,导致潜在风险。应用层渗透测试和漏洞扫描是检测安全的关键,尤其是对于CVE漏洞的修复。然而,常见误解认为安全由外部防护处理且不易引入问题。
|
1月前
|
Kubernetes API 调度
中间层 k8s(Kubernetes) 到底是什么,架构是怎么样的?
中间层 k8s(Kubernetes) 到底是什么,架构是怎么样的?
45 3
|
1月前
|
存储 Kubernetes 调度
|
1月前
|
运维 Kubernetes Cloud Native
云原生时代的容器编排:Kubernetes入门与实践
【10月更文挑战第4天】在云计算的浪潮中,云原生技术以其敏捷、可扩展和高效的特点引领着软件开发的新趋势。作为云原生生态中的关键组件,Kubernetes(通常被称为K8s)已成为容器编排的事实标准。本文将深入浅出地介绍Kubernetes的基本概念,并通过实际案例引导读者理解如何利用Kubernetes进行高效的容器管理和服务部署。无论你是初学者还是有一定经验的开发者,本文都将为你打开云原生世界的大门,并助你一臂之力在云原生时代乘风破浪。
|
1月前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
73 0