文章目录
k8s基本概念
-
master
K8s里的master指的是集群控制节点,每个集群至少需要一个master节点来负责整个集群管理和控制,操作指令都是发送给它,它来负责具体的执行过程。它是整个集群的”首脑”,如果它宕机或者不可用,那么我们所有的控制命令都将失效
-
Node
K8s其他节点,成为Node节点,Node节点是工作负载节点,没个Node都会被master分配一些工作负载,当某个Node宕机,其上的工作负载将会被master自动转移到其他节点上
k8s组件
主节点(Master)
kube-apiserver
kube-apiserver
是 Kubernetes 集群的控制平面组件之一,它公开了 Kubernetes API。所有的操作和资源都通过 kube-apiserver 提供的 API 进行访问和管理。它负责接收来自用户、管理员、外部系统和其它组件的 API 请求,然后验证和处理这些请求。
kube-controller-manager
kube-controller-manager
是 Kubernetes 集群的控制平面组件之一,它运行了一系列控制器,这些控制器负责监控集群的状态,并尝试将当前状态调整为期望的状态。例如,有 Replication Controller 负责维护 Pod 的副本数量,而 Node Controller 负责监视节点的状态。
kube-scheduler
kube-scheduler
是 Kubernetes 集群的控制平面组件之一,它负责将新创建的 Pod 分配给合适的节点。Scheduler 根据一系列的策略和约束来选择最佳的节点,以满足 Pod 的调度需求。
etcd
etcd
是 Kubernetes 集群的分布式键值存储,用于存储集群的配置数据、状态和元数据。它作为 Kubernetes 的主要数据存储,保存了整个集群的状态信息。
工作节点(Node)
kubelet
kubelet
是运行在每个工作节点上的代理服务,它负责管理节点上的容器,并确保它们按照 Pod 的规范运行。kubelet 监视本地节点的状态,并与 kube-apiserver 通信以接收新的 Pod 规范,并报告节点和容器的状态。
kube-proxy
kube-proxy
是运行在每个工作节点上的网络代理,它负责为 Kubernetes 集群中的服务提供网络代理和负载均衡功能。kube-proxy 监听 Kubernetes 集群中的服务和端点的变化,并根据需要更新节点上的网络规则。
Container Runtime
容器运行时(Container Runtime)是在工作节点上负责运行容器的软件。常见的容器运行时包括 Docker、containerd、CRI-O 等。它们负责管理容器的生命周期、镜像管理、容器网络和存储等功能。
部署k8s
一台服务器既做master也做node
IP | 配置 |
---|---|
10.255.101.159 | 4核8G内存 100G硬盘 |
sealos(github下载)
wget https://github.com/labring/sealos/releases/download/v4.0.0/sealos_4.0.0_linux_amd64.tar.gz
tar xf sealos_4.0.0_linux_amd64.tar.gz
mv sealos /usr/local/bin/
chmod +x /usr/local/bin/sealos
百度网盘
【超级会员V7】通过百度网盘分享的文件:k8s
链接:https://pan.baidu.com/s/1RW33xne7pt6V_OIo0m2-nA
提取码:like
kubens
:k8s切换命名空间时候使用
kube1.22.0.tar.gz
: k8s安装包
sealos
:k8s安装工具
部署
chmod +x /usr/bin/sealos
# kube1.22.0.tar.gz ## 放到/root/下即可
# root下执行下边这条命令
sealos init --master 10.255.101.241 --user root --passwd cbf123456. --svccidr 192.168.168.0/22 --podcidr 192.168.172.0/22 --pkg-url kube1.22.0.tar.gz --version v1.22.0
sealos
:这是你使用的执行文件或命令行工具。init
:这是初始化或设置一个 SealOS 集群的命令。
参数:
--master 10.255.101.159
:指定主节点的 IP 地址。--user root
:指定连接主节点的用户名,这里是 “root”。--passwd cbf123456.
:指定连接主节点的密码,这里是 “cbf123456.”(注意:出于安全原因,建议不要在命令中以明文形式存储密码。确保遵循保护敏感信息的最佳实践。)--svccidr 192.168.168.0/22
:指定集群的服务 CIDR 范围。--podcidr 192.168.172.0/22
:指定集群的 Pod CIDR 范围。--pkg-url kube1.22.0.tar.gz
:指定用于 SealOS 集群的 Kubernetes 包的 URL(在这里是版本 1.22.0)。--version v1.22.0
:指定要安装的 Kubernetes 版本,这里是 1.22.0
断开xshell重新连接
这个里边是多节点参考命令
部署命令
sealos init --master 10.255.101.34 --master 10.255.101.60 --master 10.255.101.46 --node 10.255.101.40 --node 10.255.101.61 --node 10.255.101.45 --user root --passwd cbf123456. --svccidr 10.255.104.0/22 --podcidr 10.255.108.0/22 --pkg-url kube1.16.0.tar.gz --version v1.16.0
添加节点
sealos join --node 10.255.101.37 --node 10.255.101.62
去除master节点污点使其可调度pod:
kubectl taint nodes --all [node-role.kubernetes.io/master-](http://node-role.kubernetes.io/master-)
删除污点
# 删除污点
kubectl taint node 10-255-101-241 node-role.kubernetes.io/master:NoSchedule-
命令补全
yum -y install bash-completion.noarch
source <(kubectl completion bash)
source /etc/profile.d/bash_completion.sh