K8s基础2——部署单Master节点K8s集群、切换containerd容器运行时、基本命令

这篇具有很好参考价值的文章主要介绍了K8s基础2——部署单Master节点K8s集群、切换containerd容器运行时、基本命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、部署K8S集群方式

两种部署方式:

  1. kubeadm工具部署。Kubeadm 是一个K8s 部署工具,提供 kubeadm init 和kubeadm join,用于快速部署 Kubernetes集群。
    • kubeadm 工具功能:
      • kubeadm init:初始化一个 Master 节点。
      • kubeadm join:将工作节点加入集群。
      • kubeadm upgrade:升级 K8s 版本。
      • kubeadm token:管理 kubeadm join 使用的令牌。
      • kubeadm reset:清空 kubeadm init 或者 kubeadm join 对主机所做的任何更改。
      • kubeadm version:打印 kubeadm 版本。
      • kubeadm alpha:预览可用的新功能。
  2. 二进制包部署。从 github获取发行版的二进制包,手动依次部署每个组件组成Kubernetes 集群。可以先使用kubeadm工具部署,熟悉之后再进行二进制部署加深理解。

二、kubeadm工具搭建K8s集群

2.1 资源配置

注意事项:

  1. 服务器最好可以访问外网,会有从网上拉取镜像需求。若服务器不能上网,需提前下载对应镜像并导入节点。
节点 实验环境配置 测试环境配置 生产环境配置
master 2核CPU、2G内存、50G硬盘 2核CPU、4G内存、20G硬盘 8核CPU、16G内存、100G硬盘
node 2核CPU、2G内存、50G硬盘 4核CPU、8G内存、20G硬盘 16核CPU、64G内存、500G硬盘
软件环境 版本 备注
操作系统 CentOS Linux release 7.5.1804 (Core) CentOS 7.X系列版本都可,最好是最小化安装。
Docker 19-ce \
Kubernetes 1.25 \

2.2 服务器规划

IP 角色
192.168.130.145 K8S-master
192.168.130.146 K8s-node1
192.168.130.147 K8s-node2

k8s master启动,K8s,kubernetes,云原生,linux

2.3 搭建流程

2.3.1 操作系统初始化

  • 以下操作,所有服务器执行。

1.关闭所有服务器防火墙。

systemctl stop firewalld
systemctl disable firewalld

2.关闭所有服务器selinux。

#永久关闭,需重启服务器才能生效。
sed -i 's/enforcing/disabled/g' /etc/selinux/config   

#临时关闭,立即生效,重启服务器后还原配置。
setenforce 0

3.关闭所有服务器swap分区。

#永久关闭。
sed -ri 's/.*swap.*/#&/g' /etc/fstab

#临时关闭。
swapoff -a

4.根据规划设置主机名称。

hostnamectl set-hostname K8s-master
hostnamectl set-hostname K8s-node1
hostnamectl set-hostname K8s-node2

k8s master启动,K8s,kubernetes,云原生,linux
5.文件绑定解析。

cat >> /etc/hosts << EOF
192.168.130.145 k8s-master
192.168.130.146 k8s-node1
192.168.130.147 k8s-node2
EOF

6.将桥接的IPv4流量传递到iptables的链。

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

#重启生效。
sysctl --system

7.时间同步。

yum install ntpdate -y
ntpdate time.windows.com

2.3.2 安装docker容器引擎

  • K8s集群需要安装容器运行时,我这里使用的是docker作为容器引擎。
  • 其他主流容器引擎:
    • containerd:containerd最开始是在docker里面的,后面将docker进行解耦把containerd单独做成一个标准的CRI运行时,再往后就捐赠给了CNCF基金会交其维护,但docker一致是与containerd相兼容的。
    • cri-o、podman:都属于红帽(RedHat)项目,目前红帽主推podman。
  • 以下操作步骤,所有服务器执行。

1.安装docker环境。

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
systemctl enable docker && systemctl start docker

2.配置加速器。

cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF

3.重启查看。

systemctl restart docker
docker info

k8s master启动,K8s,kubernetes,云原生,linux

4.添加阿里的镜像源。

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

2.3.3 安装cri-dockerd

为什么要安装cri-dockerd插件?

  1. K8s在刚开源时没有自己的容器引擎,而当时docker非常火爆是容器的代表,所以就在kubelet的代码里集成了对接docker的代码——docker shim,所以1.24版本之前是默认使用docker,不需要安装cri-dockerd。
  2. K8s 1.24版本移除 docker-shim的代码,而 Docker Engine 默认又不支持CRI标准,因此二者默认无法再直接集成。为此,Mirantis 和 Docker 为了Docker Engine 提供一个能够支持到CRI规范的桥梁,就联合创建了cri-dockerd,从而能够让 Docker 作为K8s 容器引擎。
    k8s master启动,K8s,kubernetes,云原生,linux
    k8s master启动,K8s,kubernetes,云原生,linux

为什么要移除docker shim?

  • K8s核心代码优化。
  • Docker内部调用链比较复杂,多层封装和调用,导致性能降低、提升故障率、不易排查。
  • Docker还会在宿主机创建网络规则、存储卷,也带来了安全隐患

注意事项:

  • 以下操作步骤,所有服务器执行。

1.下载安装。

wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.1/cri-dockerd-0.3.1-3.el7.x86_64.rpm
rpm -ivh cri-dockerd-0.3.1-3.el7.x86_64.rpm 

2.修改配置文件,重新读取。

vim  /usr/lib/systemd/system/cri-docker.service
#找到这行,添加路径。
ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7

systemctl daemon-reload

3.启动,并设置开机自启。

systemctl enable cri-docker && systemctl start cri-docker

2.3.4 安装kubeadm,kubelet和kubectl

  • 以下操作步骤,所有服务器执行。

1.安装三个工具,版本需要统一。

yum install -y kubelet-1.25.0 kubeadm-1.25.0 kubectl-1.25.0

2.设置开机自启,暂时不要启动。

systemctl enable kubelet

2.3.5 master节点初始化

1.master节点初始化。

参数释义:

  1. –apiserver-advertise-address 集群通告地址
  2. –image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
  3. –kubernetes-version K8s版本,与上面安装的一致
  4. –service-cidr 集群内部虚拟网络,Pod统一访问入口
  5. –pod-network-cidr Pod网络,,与下面部署的CNI网络组件yaml中保持一致。
  6. –cri-socket 指定 cri-dockerd 接口,如果是 containerd 则使用–cri-socketunix:///run/containerd/containerd.sock

注意事项:

  1. 初始化完成后,最后会输出一个 join 命令,复制下来,下面用。
kubeadm init \
  --apiserver-advertise-address=192.168.130.145 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.25.0 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16 \
  --cri-socket=unix:///var/run/cri-dockerd.sock \
  --ignore-preflight-errors=all

k8s master启动,K8s,kubernetes,云原生,linux
k8s master启动,K8s,kubernetes,云原生,linux

2.修改kubectl使用的连接k8s认证文件到默认路径,不然会报错。

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

3.查看工作节点,此时就可以使用kubectl命令了。

[root@k8s-master yum.repos.d]# kubectl get nodes

k8s master启动,K8s,kubernetes,云原生,linux

2.3.6 加入node节点

注意事项:

  • 向集群添加新节点,将前面执行kubeadm init 命令时最后输出的kubeadm join 命令复制过来,并手动加上参数–cri-socket=unix:///var/run/cri-dockerd.sock,再在命令行执行。
  • 默认token有效期为24小时,过期后,此token就不可用。这时就需要重新创建token,可以直接使用命令快捷生成:kubeadm token create --print-join-command

1.依次在所有node节点上执行加入集群命令。

[root@k8s-node1 yum.repos.d]# kubeadm join 192.168.130.145:6443 --token dxc3x4.ggvxomofqelw1g0l --discovery-token-ca-cert-hash sha256:e5b0a56b7c5108800a15b94bbdbde8ea47dc4c2e7c04973d34bf2280d65e80f1 --cri-socket=unix:///var/run/cri-dockerd.sock

[root@k8s-node2 yum.repos.d]# kubeadm join 192.168.130.145:6443 --token dxc3x4.ggvxomofqelw1g0l --discovery-token-ca-cert-hash sha256:e5b0a56b7c5108800a15b94bbdbde8ea47dc4c2e7c04973d34bf2280d65e80f1 --cri-socket=unix:///var/run/cri-dockerd.sock

k8s master启动,K8s,kubernetes,云原生,linux
2.查看集群状态,显示有新加入的2个节点。
k8s master启动,K8s,kubernetes,云原生,linux

2.3.7 部署网络组件(CNI)

不同docker主机容器访问存在的问题 :

  1. 存在两容器分配的ip相同问题,因为docker主机有各自对立的网络管理机制。
  2. 存在容器发送的数据包不知道要发送到那个节点问题。即使两个容器ip手动设置成不同,那容器1和容器2的网络也是不通的,是因为容器1发送的数据包不知道要送往哪个节点。
  3. 存在docker主机之间的通信问题。即使容器1知道要送往哪个节点,也只能通过手动方式去实现,比如路由表、iptables转发等等。
  4. 以上三个问题都是很耗时耗力的,所以需要引入网络组件来解决这些问题。

部署网络组件的原因?

  • 为打通Pod到Pod之间网络、Node与Pod之间网络,从而集群中数据包可以任意传输,形成了一个扁平化网络。

主流网络组件:

  1. Flannel
  2. Calico

注意事项:

  • 若导入yaml文件后一直处于pending状态,大概率是网络较差,可以手动下载镜像,再apply -f。
  • 以下操作在master节点执行。

1.下载文件到本地,文件下载地址。

[root@k8s-master ~]# curl https://raw.githubusercontent.com/projectcalico/calico/v3.25.1/manifests/calico.yaml -O

2.修改Calico配置文件里的定义Pod网络(CALICO_IPV4POOL_CIDR),与前面kubeadm init的 --pod-network-cidr指定一致。

[root@k8s-master ~]# vim calico.yaml
......
            - name: CALICO_IPV4POOL_CIDR
              value: "10.244.0.0/16"

k8s master启动,K8s,kubernetes,云原生,linux
3.将Calico文件部署到k8s集群中。

[root@k8s-master ~]# kubectl apply -f calico.yaml

4.查看Calico容器网络状态,拉取镜像需要等两分钟,有点慢。

[root@k8s-master ~]# kubectl get pods -n kube-system

k8s master启动,K8s,kubernetes,云原生,linux
k8s master启动,K8s,kubernetes,云原生,linux

2.3.8 部署 Dashboard

  • Dashboard是官方提供的一个UI,可用于基本管理K8s资源。
  • 以下操作在master节点执行。

1.下载yaml文件。

[root@k8s-master ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml

2.修改yaml文件内容。默认Dashboard只能集群内部访问,修改Service为NodePort类型,暴露到外部。

......
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30001    ##添加此行。
  selector:
    k8s-app: kubernetes-dashboard
  type: NodePort   ##添加此行。
......

k8s master启动,K8s,kubernetes,云原生,linux
3.加载这个yaml文件,并查看容器运行状态。

[root@k8s-master ~]# kubectl apply -f recommended.yaml
[root@k8s-master ~]# kubectl get pods -n kubernetes-dashboard

k8s master启动,K8s,kubernetes,云原生,linux

2.3.9 访问Dashboard

1.访问k8s任意节点IP:30001,会发现被拦截了,这是因为chrome认为该网站不安全,不让访问,我们在当前页面随意处输入“thisisunsafe”回车即可解决,相当于了解了风险依然访问,之后就可以访问网页,但那之后再出问题也就没有责任了。
k8s master启动,K8s,kubernetes,云原生,linux

2.此时需要我们输入Token登录。

k8s master启动,K8s,kubernetes,云原生,linux
3.获取Token。创建service account并绑定默认cluster-admin管理员集群角色。

[root@k8s-master ~]# kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard

[root@k8s-master ~]# kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin

[root@k8s-master ~]# kubectl create token dashboard-admin -n kubernetes-dashboard

k8s master启动,K8s,kubernetes,云原生,linux
4.粘贴Token,登录。
k8s master启动,K8s,kubernetes,云原生,linux
k8s master启动,K8s,kubernetes,云原生,linux

2.3.10 效果测试

2.3.10.1 创建pods

1.创建一个pods。
k8s master启动,K8s,kubernetes,云原生,linux
2.查看Pods。
k8s master启动,K8s,kubernetes,云原生,linux
3.也可以在终端上查看pods运行状态。
k8s master启动,K8s,kubernetes,云原生,linux

2.3.10.2 查看容器日志

k8s master启动,K8s,kubernetes,云原生,linux
k8s master启动,K8s,kubernetes,云原生,linux

2.3.10.3 查看yaml文件

k8s master启动,K8s,kubernetes,云原生,linux

k8s master启动,K8s,kubernetes,云原生,linux

2.3.10.4 进入容器终端

k8s master启动,K8s,kubernetes,云原生,linux

k8s master启动,K8s,kubernetes,云原生,linux

2.3.10.5 缩放资源

1.缩放。
k8s master启动,K8s,kubernetes,云原生,linux
2.查看Pods。
k8s master启动,K8s,kubernetes,云原生,linux
k8s master启动,K8s,kubernetes,云原生,linux

2.4 使用Containerd容器引擎

注意事项:

  1. containerd是一个主流的容器引擎,与Docker相兼容,相比Docker轻量很多,目前较为成熟。
  2. containerd是独立的运行时,一个集群可以有多个运行时,比如docker和containerd可以同时存在,但一般就是用一个,不建立交叉使用。
  3. 若是docker切换成containerd,则需要给一个集群所有节点都切换,以下操作只切换了master节点,只做示范。
  4. 不同运行时的镜像是通用的。

2.4.1 使用前提条件

1.启用两个内核模块。操作系统默认是有的,若没有,则执行代码框的内容进行添加启用。

cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

k8s master启动,K8s,kubernetes,云原生,linux

2.设置sysctl 参数。若是第一次直接使用containerd,则需要把下面几个参数都要添加进去;若是docker切换成containerd,按照前文的操作,前两个参数已经添加,只需要确定添加最后一个参数。

cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

#重启生效。
sysctl --system

2.4.2 安装containerd

1.安装。若是直接使用containerd,需要执行此步骤进行安装;若是由docker更换成containerd,则直接进行第二步,因为在前文安装docker时,已经把contained安装了。

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
yum install -y containerd.io

k8s master启动,K8s,kubernetes,云原生,linux

2.创建配置文件目录。

#若是按照前文操作来的,已经生成该目录,且存在配置文件,不需在创建,只用执行第二个命令;若不是按照前文来操作的,需创建。
mkdir -p /etc/containerd  

k8s master启动,K8s,kubernetes,云原生,linux

2.4.3 修改containerd运行模式

1.修改containerd运行模式,以独立模式运行,也就是不需要安装docker就可以运行。

  • 修改前

k8s master启动,K8s,kubernetes,云原生,linux

  • 修改命令
containerd config default > /etc/containerd/config.toml
  • 修改后

k8s master启动,K8s,kubernetes,云原生,linux

2.4.4 修改containerd运行参数

修改containerd运行参数:

  • pause镜像设置过阿里云镜像仓库地址。
  • 拉取Docker Hub镜像配置加速地址设置为阿里云镜像仓库地址。

1.修改一

vi /etc/containerd/config.toml
......
    sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.2"  

k8s master启动,K8s,kubernetes,云原生,linux

2.修改二

vi /etc/containerd/config.toml
......
	[plugins."io.containerd.grpc.v1.cri".registry.mirrors]

#添加这两行。     
    [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
    endpoint = ["https://b9pmyelo.mirror.aliyuncs.com"]

k8s master启动,K8s,kubernetes,云原生,linux
3.重新读取。

systemctl restart containerd

2.4.5 配置kubelet使用containerd

1.查看文件路径。
k8s master启动,K8s,kubernetes,云原生,linux
2.修改配置文件里的路径,并重启服务。

[root@k8s-master containerd]# vim /var/lib/kubelet/kubeadm-flags.env

[root@k8s-master containerd]# systemctl  restart kubelet

k8s master启动,K8s,kubernetes,云原生,linux

2.4.6 验证

1.此时查看master节点已经采用containerd容器引擎。

[root@k8s-master containerd]# kubectl get node -o wide

k8s master启动,K8s,kubernetes,云原生,linux

2.此时关闭cri-docker和docker不影响containerd的运行使用。

k8s master启动,K8s,kubernetes,云原生,linux

2.4.7 容器管理工具

  • containerd提供了ctr命令行工具管理容器,但功能比较简单,所以一般会用crictl工具检查和调试容器。
  • 项目地址:https://github.com/kubernetes-sigs/cri-tools/
2.4.7.1 设置crictl连接containerd

1.不设置会报错。

k8s master启动,K8s,kubernetes,云原生,linux

2.指定使用containerd容器运行时的API接口。

[root@k8s-master containerd]# vim /etc/crictl.yaml

runtime-endpoint: unix:///run/containerd/containerd.sock  ##指定容器运行时的文件接口。
image-endpoint: unix:///run/containerd/containerd.sock    ##指定容器运行时管理镜像的接口。
timeout: 10   ##指定容器运行时的连接超时时间。
debug: false   ##是否输出debug信息。
2.4.7.2 验证

1.此时就可以正常使用crictl命令。
k8s master启动,K8s,kubernetes,云原生,linux

2.4.7.3 相关命令
镜像相关功能 docker containerd(crictl)
显示本地镜像列表 docker images crictl images
下载镜像 docker pull crictl pull
上传镜像 docker push 无,例如buildk
删除本地镜像 docker rmi crictl rmi
查看镜像详情 docker inspect IMAGE-ID crictl inspecti IMAGE-ID
容器相关功能 Docker containerd(crictl)
显示容器列表 docker ps crictl ps
创建容器 docker create crictl create
启动容器 docker start crictl start
停止容器 docker stop crictl stop
删除容器 docker rm crictl rm
查看容器详情 docker inspect crictl inspect
附加容器 docker attach crictl attach
执行命令 docker exec crictl exec
查看日志 docker logs crictl logs
查看容器资源 docker stats crictl stats
POD 相关功能 Docker containerd(crictl)
显示 POD 列表 crictl pods
查看 POD 详情 crictl inspectp
运行 POD crictl runp
停止 POD crictl stopp

三、kubectl命令行管理工具

3.1 基础命令

命令 释义
create 通过文件名或标准输入创建资源
expose 为Deployment,Pod创建Service
run 在集群中运行一个特定的镜像
set 在对象上设置特定的功能
explain 文档参考资料
get 显示一个或多个资源
edit 使用系统编辑器编辑一个资源。
delete 通过文件名、标准输入、资源名称或标签选择器来删除资源。

3.2 部署命令

命令 释义
rollout 管理Deployment,Daemonset资源的发布(例如状态、发布记录、回滚等)
scale 对Deployment、ReplicaSet、RC或Job资源扩容或缩容Pod数量
autoscale 为Deploy, RS, RC配置自动伸缩规则(依赖metrics-server和hpa)

3.3 集群管理命令

命令 释义
certificate 修改证书资源
cluster-info 显示集群信息
top 查看资源利用率(依赖metrics-server)
cordon 标记节点不可调度
uncordon 标记节点可调度
drain 驱逐节点上的应用,准备下线维护
taint 修改节点taint标记

3.4 调试命令

命令 释义
describe 显示资源详细信息
logs 查看Pod内容器日志,如果Pod有多个容器,-c参数指定容器名称
attach 附加到Pod内的一个容器
exec 在容器内执行命令
port-forward 为Pod创建本地端口映射
proxy 为Kubernetes API server创建代理
cp 拷贝文件或目录到容器中,或者从容器内向外拷贝
auth 检查授权
debug 创建调试会话,用于排查工作负载和工作节点故障

3.5 高级命令

命令 释义
diff 将在线配置与指定的文件对比
apply 从文件名或标准输入对资源创建/更新
patch 使用补丁方式修改、更新资源的某些字段
replace 从文件名或标准输入替换一个资源
kustomize 从目录或者URL构建kustomization目标

3.6 设置命令

命令 释义
label 给资源设置、更新标签
annotate 给资源设置、更新注解
completion kubectl 自动补全
1、安装依赖包bash-completion。
2、设置在bash中自动补全:source <(kubectl completion bash)

3.6 其他命令

命令 释义
api-resources 查看所有资源
api-versions 打印受支持的API版本
config 修改kubeconfig文件(用于访问API,比如配置认证信息)
version 查看kubectl和k8s版本

四、异常处理

4.1 其他节点无法使用kubectl命令

  • 问题:其他工作节点无法使用kubectl命令。

k8s master启动,K8s,kubernetes,云原生,linux
1.现在node节点上的/root目录下创建.kube目录。

[root@k8s-node1 ~]# mkdir .kube
[root@k8s-node2 ~]# mkdir .kube

2.把master节点上的.kube/config文件复制到其他工作节点同目录下。

[root@k8s-master ~]#  scp .kube/config root@192.168.130.146:/root/.kube/
[root@k8s-master ~]#  scp .kube/config root@192.168.130.147:/root/.kube/

3.此时node节点就可以使用kubectl命令了。
k8s master启动,K8s,kubernetes,云原生,linux

4.2 命令行的补全

  • kubectl命令默认不支持补全功能,我们可以把补全相关的内容写入到bash中,这里就需要linux中的bash补全包,其他工具的补全命令都需要这个命令。

1.安装依赖包,linux的mini版本是没有装的。

[root@k8s-master ~]# yum install -y bash-completion

[root@k8s-master ~]# bash

2.在 bash 中设置当前 shell 的自动补全,随后命令就可以补全,但重启机器就会失效。

[root@k8s-master ~]# source <(kubectl completion bash)

3.开机自启,永久生效。文章来源地址https://www.toymoban.com/news/detail-651152.html

[root@k8s-master ~]# echo "source <(kubectl completion bash)" >> ~/.bashrc
[root@k8s-master ~]# source .bashrc 

到了这里,关于K8s基础2——部署单Master节点K8s集群、切换containerd容器运行时、基本命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • k8s其他master节点加入集群命令

    k8s其他master节点加入集群命令

      kubeadm join 192.168.0.236:16443 --token 7t2weq.bjbawausm0jaxury         --discovery-token-ca-cert-hash sha256:92175a356db070deb2ddd3823e288e3005a4baeec9b68580dcc11ce4d3767195         --control-plane --certificate-key a01487c705d04e23832dafee30b06e9ef2ed9d946e9c5c1e869d915da043b640

    2024年01月18日
    浏览(17)
  • k8s单节点部署,容器运行时使用containerd

    k8s单节点部署,容器运行时使用containerd

    环境 系统 : entOS Linux release 7.9.2009 (Core IP:192.168.44.177 硬件要求:控制平面最少需要 2c2g 安装前环境准备 如果是集群部署还需要配置时间同步 关闭防火墙 关闭selinux 关闭swap分区 如果没有开启swap分区可以跳过这步 删除掉 /etc/fstab 有关swap分区的信息 设置主机名 开始安装容器

    2024年04月12日
    浏览(14)
  • K8S集群搭建(多master多node节点)

    K8S集群搭建(多master多node节点)

    目录           一 部署环境 关闭防火墙 设置主机名hostname,管理节点设置主机名为 master  配置hosts主机名解析 配置免密登陆 关闭交换分区 配置内核参数,将桥接的IPv4流量传递到iptables的链 开启ipvs 二 配置软件源 升级centos系统内核 配置时间同步 安装docker服务以及K8S  查

    2024年02月06日
    浏览(15)
  • K8s集群重启与恢复-Master节点启停

    1 应用场景 场景 :在实际工作中,可能某个 Master 节点需要维护,迁移,我们需要平滑的停止、启动该节点,尽量减少启停中对集群造成的影响 注意 : 为了确保 K8s 集群能够安全恢复,请在操作前对 K8s 数据进行备份 为了确保重启 Master 节点期间 K8s 集群能够使用,集群中

    2023年04月08日
    浏览(9)
  • k8s集群master节点的删除和重新加入

    一、剔除master1节点 1)删除master1节点 3台master下掉一个,剩下2个master运行基本也没问题。坚持个一两天问题不大。 2)清理etcd数据 a.进入etcd容器 b.查看member list c.剔除已删除的master1 二、master1重新加入 1)重置下master1 2)配置一个对域名apiserver.cluster.local的解析 修改 /etc/hosts

    2024年01月22日
    浏览(13)
  • Kubeadm安装单master多node节点K8S集群

    Kubeadm安装单master多node节点K8S集群

    记录在刚搭建的3个虚拟机里成功安装K8S1.25版本集群的步骤 由于是成功创建后才记录的博客,只记录了操作步骤,过程中执行命令后的截图会有部分缺失,或者换成了文字。 操作系统:centos7.9 每个服务器配置: 4Gib内存/4vCPU/80G硬盘 网络:NAT模式 K8S集群角色 IP 主机名 安装的

    2024年01月24日
    浏览(35)
  • Kubernetes实战(十四)-k8s高可用集群扩容master节点

    Kubernetes实战(十四)-k8s高可用集群扩容master节点

    k8s 集群是由一组运行 k8s 的节点组成的,节点可以是物理机、虚拟机或者云服务器。k8s 集群中的节点分为两种角色:master 和 node。 master 节点:master 节点负责控制和管理整个集群,它运行着一些关键的组件,如 kube-apiserver、kube-scheduler、kube-controller-manager 等。master 节点可以有

    2024年02月03日
    浏览(15)
  • k8s单节点部署(仅master)

    1.脚本部署 默认token有效期为24小时,当过期之后,该token就不可用了。这时就需要重新创建token,可以直接使用命令快捷生成: 2.部署dashboard Dashboard是官方提供的一个UI,可用于基本管理K8s资源。 1、YAML下载地址: https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recom

    2024年02月07日
    浏览(15)
  • k8s master节点高可用方案部署

    k8s master节点高可用方案部署

    使用的是堆叠方案,即etcd与控制平面被部署在同一节点当中,之所以最少使用三个master节点是因为ETCD的RAFT算法,集群中节点超过半数可用,集群才可用,所以一般使用奇数master节点,比如3、5等 每台机器都做 至少2cpu,4g机器环境 关闭防火墙、关闭selinux、关闭交换分区 (1)

    2023年04月08日
    浏览(14)
  • [kubernetes]二进制部署k8s集群-基于containerd

    k8s从1.24版本开始不再直接支持docker,但可以自行调整相关配置,实现1.24版本后的k8s还能调用docker。其实docker自身也是调用containerd,与其k8s通过docker再调用containerd,不如k8s直接调用containerd,以减少性能损耗。 除了containerd,比较流行的容器运行时还有podman,但是podman官方安装

    2024年02月12日
    浏览(19)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包