kubernetes 1.26.1 Etcd部署(外接)保姆级教程

news2024/9/29 18:13:56

目录

部署etcd前期准备

机器信息

升级内核

系统配置

部署容器运行时Containerd

安装crictl客户端命令

配置服务器支持开启ipvs的前提条件

安装 kubeadm、kubelet 和 kubectl

安装部署etcd

1.将 kubelet 配置为 etcd 的服务管理器

2.为 kubeadm 创建配置文件

3. 生成证书颁发机构

4. 为每个成员创建证书

5. 复制证书和 kubeadm 配置

6.确保所有节点预期的文件都存在

7. 创建静态 Pod 清单

8. 可选:检查集群运行状况

9. ctr 命令使用

10. 下载etcdctl

11. 常见问题

12. 检查etcd服务状态

13. 证书更新


如果有帮助到你,请点个赞哦~

部署etcd前期准备

机器信息

主机名IP内核系统版本配置
l-shahe-k8s-etcd1.ops.prod10.120.174.145.4.231-1.el7.elrepo.x86_64CentOS Linux release 7.9.2009 (Core)12C 64G 500G SSD
l-shahe-k8s-etcd2.ops.prod10.120.175.55.4.231-1.el7.elrepo.x86_64CentOS Linux release 7.9.2009 (Core)12C 64G 500G SSD
l-shahe-k8s-etcd3.ops.prod10.120.175.365.4.231-1.el7.elrepo.x86_64CentOS Linux release 7.9.2009 (Core)12C 64G 500G SSD

升级内核

GitHub - containerd/containerd: An open and reliable container runtimeAn open and reliable container runtime. Contribute to containerd/containerd development by creating an account on GitHub.https://github.com/containerd/containerd

执行如下命令

下载内核5.4.231 https://download.csdn.net/download/weixin_43798031/87497156?spm=1001.2014.3001.5503

yum update -y
mkdir -p  /opt/k8s-install/  && cd /opt/k8s-install/
wget 10.60.127.202:19999/kernel.tar.gz
tar xf kernel.tar.gz
 
yum -y remove kernel-tools-3.10.0-1160.71.1.el7.x86_64  kernel-tools-libs-3.10.0-1160.71.1.el7.x86_64 kernel-headers-3.10.0-1160.el7.x86_64
yum -y install *.rpm
cat /boot/grub2/grub.cfg |grep menuentry
grub2-set-default 'CentOS Linux (5.4.231-1.el7.elrepo.x86_64) 7 (Core)'
grub2-mkconfig -o /boot/grub2/grub.cfg
 
#需要重启
sed -i 's/,nobarrier//g' /etc/fstab && reboot

系统配置

禁用SELinux
setenforce 0
vi /etc/selinux/config SELINUX=disabled
 
关闭 swap 分区
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
 
创建/etc/modules-load.d/containerd.conf配置文件
cat << EOF > /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF
 
# 设置所需的 sysctl 参数,参数在重新启动后保持不变
cat << EOF > /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
user.max_user_namespaces=28633
EOF
# 应用 sysctl 参数而不重新启动
sudo sysctl --system
通过运行以下指令确认 br_netfilter 和 overlay 模块被加载:
lsmod | grep br_netfilter
lsmod | grep overlay
 
通过运行以下指令确认 net.bridge.bridge-nf-call-iptables、net.bridge.bridge-nf-call-ip6tables 和 net.ipv4.ip_forward 系统变量在你的 sysctl 配置中被设置为 1:
sysctl net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables net.ipv4.ip_forward

部署容器运行时Containerd

在各个服务器节点上安装容器运行时Containerd。
下载Containerd的二进制包

wget https://github.com/containerd/containerd/releases/download/v1.6.14/cri-containerd-cni-1.6.14-linux-amd64.tar.gz
cri-containerd-cni-1.6.14-linux-amd64.tar.gz压缩包中已经按照官方二进制部署推荐的目录结构布局好。 里面包含了systemd配置文件,containerd以及cni的部署文件。
 
将解压缩到系统的根目录/中:
tar -zxvf cri-containerd-cni-1.6.14-linux-amd64.tar.gz -C /
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
 
systemctl daemon-reload
systemctl enable --now containerd

安装crictl客户端命令

下载安装包:https://download.csdn.net/download/weixin_43798031/87497561?spm=1001.2014.3001.5503

下载安装包
wget https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.24.0/crictl-v1.24.0-linux-amd64.tar.gz
 
解压
tar -zxvf crictl-v1.24.0-linux-amd64.tar.gz -C /usr/local/bin
 
修改crictl配置文件
cat > /etc/crictl.yaml <<EOF
runtime-endpoint: unix:///var/run/containerd/containerd.sock                                                                                                                                                                              
image-endpoint: unix:///var/run/containerd/containerd.sock                                                                                                                                                                                
timeout: 10                                                                                                                                                                                                                               
debug: false                                                                                                                                                                                                                              
pull-image-on-create: false
EOF
 
重新加载守护进程
systemctl daemon-reload
cat > .bash_profile <<EOF
# .bash_profile # Get the aliases and functions
if [ -f ~/.bashrc ]; then
 . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/usr/local/bin/
export PATH EOF
 
source  /root/.bash_profile

如遇以下报错

mv /etc/containerd/config.toml /etc/containerd/config.bak 
containerd config default > /etc/containerd/config.toml 
systemctl daemon-reload systemctl restart containerd

配置服务器支持开启ipvs的前提条件

由于ipvs已经加入到了内核的主干,所以为kube-proxy开启ipvs的前提需要加载以下的内核模块:

在各个服务器节点上执行以下脚本:

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF

授权和执行脚本 
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack 

安装ipvsadm工具 
yum install -y ipset ipvsadm

安装 kubeadm、kubelet 和 kubectl

  • kubeadm:用来初始化集群的指令。

  • kubelet:在集群中的每个节点上用来启动 Pod 和容器等。

  • kubectl:用来与集群通信的命令行工具。

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

sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes 
sudo systemctl enable --now kubelet

安装部署etcd

1.将 kubelet 配置为 etcd 的服务管理器

说明: 你必须在要运行 etcd 的所有主机上执行此操作。k8s master 和node节点不用执行这个步骤,否则会发现节点无法加入集群的问题。

原因:以外接的方式部署etcd,虽然是以kubelet管理容器服务,但是守护进程用的是systemd。

由于 etcd 是首先创建的,因此你必须通过创建具有更高优先级的新文件来覆盖 kubeadm 提供的 kubelet 单元文件。

mkdir -p /etc/systemd/system/kubelet.service.d/
cat << EOF > /etc/systemd/system/kubelet.service.d/20-etcd-service-manager.conf
[Service]
ExecStart=
# 将下面的 "systemd" 替换为你的容器运行时所使用的 cgroup 驱动。如果使用系统systemd则无需修改
# kubelet 的默认值为 "cgroupfs"。
# 如果需要的话,将 "--container-runtime-endpoint " 的值替换为一个不同的容器运行时。
ExecStart=/usr/bin/kubelet --address=127.0.0.1 --pod-manifest-path=/etc/kubernetes/manifests --cgroup-driver=systemd --container-runtime=remote --container-runtime-endpoint=unix:///var/run/containerd/containerd.sock
Restart=always
EOF
检查 kubelet 的状态以确保其处于运行状态:
systemctl daemon-reload && systemctl restart kubelet  && systemctl status kubelet

2.为 kubeadm 创建配置文件

使用以下脚本为每个将要运行 etcd 成员的主机生成一个 kubeadm 配置文件。

/opt/k8s-install/etcd-init.sh

# 使 用 你 的 主 机  IP 替 换  HOST0、 HOST1 和  HOST2 的  IP 地 址                                                                                                                                                                                    
export HOST0=10.120.174.14                                                                                                                                                                                                                
export HOST1=10.120.175.5                                                                                                                                                                                                                 
export HOST2=10.120.175.36                                                                                                                                                                                                                
                                                                                                                                                                                                                                            
# 使 用 你 的 主 机 名 更 新  NAME0、 NAME1 和  NAME2                                                                                                                                                                                                
export NAME0="l-shahe-k8s-etcd1.ops.prod"                                                                                                                                                                                                 
export NAME1="l-shahe-k8s-etcd2.ops.prod"                                                                                                                                                                                                 
export NAME2="l-shahe-k8s-etcd3.ops.prod"                                                                                                                                                                                                 
                                                                                                                                                                                                                                            
# 创 建 临 时 目 录 来 存 储 将 被 分 发 到 其 它 主 机 上 的 文 件                                                                                                                                                                                             
mkdir -p /tmp/${HOST0}/ /tmp/${HOST1}/ /tmp/${HOST2}/                                                                                                                                                                                     
                                                                                                                                                                                                                                            
HOSTS=(${HOST0} ${HOST1} ${HOST2})                                                                                                                                                                                                        
NAMES=(${NAME0} ${NAME1} ${NAME2})                                                                                                                                                                                                        
                                                                                                                                                                                                                                            
for i in "${!HOSTS[@]}"; do                                                                                                                                                                                                               
HOST=${HOSTS[$i]}                                                                                                                                                                                                                         
NAME=${NAMES[$i]}                                                                                                                                                                                                                         
cat << EOF > /tmp/${HOST}/kubeadmcfg.yaml                                                                                                                                                                                                 
---                                                                                                                                                                                                                                       
apiVersion: "kubeadm.k8s.io/v1beta3"                                                                                                                                                                                                      
kind: InitConfiguration                                                                                                                                                                                                                   
nodeRegistration:                                                                                                                                                                                                                         
    name: ${NAME}                      
localAPIEndpoint:                                                                                                                                                                                                                         
    advertiseAddress: ${HOST}                                                                                                                                                                                                             
---                                                                                                                                                                                                                                       
apiVersion: "kubeadm.k8s.io/v1beta3"                                                                                                                                                                                                      
kind: ClusterConfiguration                                                                                                                                                                                                                
etcd:                                                                                                                                                                                                                                     
    local:                                                                                                                                                                                                                                
        serverCertSANs:                                                                                                                                                                                                                   
        - "${HOST}"                                                                                                                                                                                                                       
        peerCertSANs:                                                                                                                                                                                                                     
        - "${HOST}"                                                                                                                                                                                                                       
        extraArgs:                                                                                                                                                                                                                        
            initial-cluster: ${NAMES[0]}=https://${HOSTS[0]}:2380,${NAMES[1]}=https://${HOSTS[1]}:2380,${NAMES[2]}=https://${HOSTS[2]}:2380                                                                                               
            initial-cluster-state: new                                                                                                                                                                                                    
            name: ${NAME}                                                                                                                                                                                                                 
            listen-peer-urls: https://${HOST}:2380                                                                                                                                                                                        
            listen-client-urls: https://${HOST}:2379                                                                                                                                                                                      
            advertise-client-urls: https://${HOST}:2379                                                                                                                                                                                   
            initial-advertise-peer-urls: https://${HOST}:2380                                                                                                                                                                             
EOF                                                                                                                                                                                                                                       
done

执行脚本后会在/tmp 目录下生成一个yaml文件

3. 生成证书颁发机构

如果你已经拥有 CA,那么唯一的操作是复制 CA 的 crt 和 key 文件到 etc/kubernetes/pki/etcd/ca.crt 和 /etc/kubernetes/pki/etcd/ca.key。 复制完这些文件后继续下一步,“为每个成员创建证书”。

如果你还没有 CA,则在 $HOST0(你为 kubeadm 生成配置文件的位置)上运行此命令。

kubeadm init phase certs etcd-ca

这一操作创建如下两个文件:
/etc/kubernetes/pki/etcd/ca.crt
/etc/kubernetes/pki/etcd/ca.key

4. 为每个成员创建证书

[root@l-shahe-k8s-etcd1.ops.prod k8s-install]$ HOST2=10.120.175.36                                                                                                                                                                         
[root@l-shahe-k8s-etcd1.ops.prod k8s-install]$ HOST1=10.120.175.5                                                                                                                                                                          
[root@l-shahe-k8s-etcd1.ops.prod k8s-install]$ HOST0=10.120.174.14 

kubeadm init phase certs etcd-server --config=/tmp/10.120.175.5/kubeadmcfg.yaml
kubeadm init phase certs etcd-peer  --config=/tmp/10.120.175.5/kubeadmcfg.yaml 
kubeadm init phase certs etcd-healthcheck-client --config=/tmp/10.120.175.5/kubeadmcfg.yaml 
kubeadm init phase certs apiserver-etcd-client  --config=/tmp/10.120.175.5/kubeadmcfg.yaml 
cp -R /etc/kubernetes/pki /tmp/10.120.175.5/. 
# 清理不可重复使用的证书
find /etc/kubernetes/pki -not -name ca.crt -not -name ca.key -type f -delete
kubeadm init phase certs etcd-server --config=/tmp/${HOST1}/kubeadmcfg.yaml
kubeadm init phase certs etcd-peer --config=/tmp/${HOST1}/kubeadmcfg.yaml
kubeadm init phase certs etcd-healthcheck-client --config=/tmp/${HOST1}/kubeadmcfg.yaml
kubeadm init phase certs apiserver-etcd-client --config=/tmp/${HOST1}/kubeadmcfg.yaml
cp -R /etc/kubernetes/pki /tmp/${HOST1}/
find /etc/kubernetes/pki -not -name ca.crt -not -name ca.key -type f -delete

kubeadm init phase certs etcd-server --config=/tmp/${HOST0}/kubeadmcfg.yaml
kubeadm init phase certs etcd-peer --config=/tmp/${HOST0}/kubeadmcfg.yaml
kubeadm init phase certs etcd-healthcheck-client --config=/tmp/${HOST0}/kubeadmcfg.yaml
kubeadm init phase certs apiserver-etcd-client --config=/tmp/${HOST0}/kubeadmcfg.yaml
# 不需要移动 certs 因为它们是给 HOST0 使用的

# 清理不应从此主机复制的证书
find /tmp/${HOST2} -name ca.key -type f -delete
find /tmp/${HOST1} -name ca.key -type f -delete

5. 复制证书和 kubeadm 配置

USER=root
HOST=${HOST1}
scp -r /tmp/${HOST}/* ${USER}@${HOST}:
ssh ${USER}@${HOST}
USER@HOST $ sudo -Es
root@HOST $ chown -R root:root pki
root@HOST $ mv pki /etc/kubernetes/

6.确保所有节点预期的文件都存在

10.120.174.14 节点

[root@l-shahe-k8s-etcd1.ops.prod tmp]$ tree /tmp/10.120.174.14/                                                                                                                                                                           
/tmp/10.120.174.14/                                                                                                                                                                                                                       
└── kubeadmcfg.yaml                                                                                                                                                                                                                       
                                                                                                                                                                                                                                            
0 directories, 1 file                                                                                                                                                                                                                     
[root@l-shahe-k8s-etcd1.ops.prod tmp]$ tree /etc/kubernetes/pki/                                                                                                                                                                          
/etc/kubernetes/pki/                                                                                                                                                                                                                      
├── apiserver-etcd-client.crt                                                                                                                                                                                                             
├── apiserver-etcd-client.key                                                                                                                                                                                                             
└── etcd                                                                                                                                                                                                                                  
    ├── ca.crt                                                                                                                                                                                                                            
    ├── ca.key                                                                                                                                                                                                                            
    ├── healthcheck-client.crt                                                                                                                                                                                                            
    ├── healthcheck-client.key                                                                                                                                                                                                            
    ├── peer.crt                                                                                                                                                                                                                          
    ├── peer.key                                                                                                                                                                                                                          
    ├── server.crt                                                                                                                                                                                                                        
    └── server.key                                                                                                                                                                                                                        
                                                                                                                                                                                                                                            
1 directory, 10 files

10.120.175.5节点

[root@l-shahe-k8s-etcd2.ops.prod 10.120.175.5]$ tree /opt/k8s-install/10.120.175.5                                                                                                                                                         
/opt/k8s-install/10.120.175.5                                                                                                                                                                                                              
└── kubeadmcfg.yaml                                                                                                                                                                                                                        
                                                                                                                                                                                                                                           
0 directories, 1 file 


[root@l-shahe-k8s-etcd2.ops.prod 10.120.175.5]$ tree /etc/kubernetes/pki/                                                                                                                                                                  
/etc/kubernetes/pki/                                                                                                                                                                                                                       
├── apiserver-etcd-client.crt                                                                                                                                                                                                              
├── apiserver-etcd-client.key                                                                                                                                                                                                              
└── etcd                                                                                                                                                                                                                                   
    ├── ca.crt                                                                                                                                                                                                                             
    ├── healthcheck-client.crt                                                                                                                                                                                                             
    ├── healthcheck-client.key                                                                                                                                                                                                             
    ├── peer.crt                                                                                                                                                                                                                           
    ├── peer.key                                                                                                                                                                                                                           
    ├── server.crt                                                                                                                                                                                                                         
    └── server.key                                                                                                                                                                                                                         
                                                                                                                                                                                                                                           
1 directory, 9 files  

10.120.175.36节点

[root@l-shahe-k8s-etcd3.ops.prod 10.120.175.36]$ tree /opt/k8s-install/10.120.175.36                                                                                                                                                       
/opt/k8s-install/10.120.175.36                                                                                                                                                                                                             
└── kubeadmcfg.yaml                                                                                                                                                                                                                        
                                                                                                                                                                                                                                           
0 directories, 1 file


[root@l-shahe-k8s-etcd3.ops.prod 10.120.175.36]$ tree /etc/kubernetes/pki/                                                                                                                                                                 
/etc/kubernetes/pki/                                                                                                                                                                                                                       
├── apiserver-etcd-client.crt                                                                                                                                                                                                              
├── apiserver-etcd-client.key                                                                                                                                                                                                              
└── etcd                                                                                                                                                                                                                                   
    ├── ca.crt                                                                                                                                                                                                                             
    ├── healthcheck-client.crt                                                                                                                                                                                                             
    ├── healthcheck-client.key                                                                                                                                                                                                             
    ├── peer.crt                                                                                                                                                                                                                           
    ├── peer.key                                                                                                                                                                                                                           
    ├── server.crt                                                                                                                                                                                                                         
    └── server.key                                                                                                                                                                                                                         
                                                                                                                                                                                                                                           
1 directory, 9 files          

7. 创建静态 Pod 清单

既然证书和配置已经就绪,是时候去创建清单了。 在每台主机上运行 kubeadm 命令来生成 etcd 使用的静态清单。

root@HOST0 $ kubeadm init phase etcd local --config=/tmp/10.120.174.14/kubeadmcfg.yaml                
root@HOST1 $ kubeadm init phase etcd local --config=/opt/k8s-install/10.120.175.5/kubeadmcfg.yaml
root@HOST2 $ kubeadm init phase etcd local --config=/opt/k8s-install/10.120.175.36/kubeadmcfg.yaml 

8. 可选:检查集群运行状况

如果 etcdctl 不可用,你可以在容器镜像内运行此工具。 你可以使用 crictl run 这类工具直接在容器运行时执行此操作,而不是通过 Kubernetes。

ETCDCTL_API=3 etcdctl \
--cert /etc/kubernetes/pki/etcd/peer.crt \
--key /etc/kubernetes/pki/etcd/peer.key \
--cacert /etc/kubernetes/pki/etcd/ca.crt \
--endpoints https://${HOST0}:2379 endpoint health
...
https://[HOST0 IP]:2379 is healthy: successfully committed proposal: took = 16.283339ms
https://[HOST1 IP]:2379 is healthy: successfully committed proposal: took = 19.44402ms
https://[HOST2 IP]:2379 is healthy: successfully committed proposal: took = 35.926451ms


列出成员
etcdctl --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --endpoints=https://10.120.174.14:2379 member list --write-out=table

如果没有监听2379端口说明,启动pod的时候失败了,排查思路查看kubelet日志如下

导致原因是缺少了一些镜像,我们需要把镜像下载好,更改tag之后修改 /etc/kubernetes/manifests/etcd.yaml 文件中的image字段

9. ctr 命令使用

导入镜像
ctr -n k8s.io images import etcd.tar   
ctr -n k8s.io images import pause.tar 


导出镜像
ctr -n k8s.io images export etcd.tar registry.k8s.io/etcd:3.5.6-0 


打tag
ctr  -n k8s.io images tag  registry.k8s.io/etcd:3.5.6-0  harbor.int.yidian-inc.com/kubernetes-1.26.1/etcd:3.5.6-0  
ctr  -n k8s.io images tag  registry.k8s.io/pause:3.6  harbor.int.yidian-inc.com/kubernetes-1.26.1/pause:3.6


push 镜像到harbor
ctr -n k8s.io  images push harbor.int.yidian-inc.com/kubernetes-1.26.1/pause:3.6 
ctr -n k8s.io  images push harbor.int.yidian-inc.com/kubernetes-1.26.1/etcd:3.5.6-0

10. 下载etcdctl

常用命令

列出成员
etcdctl member list

只列出key
etcdctl get / --prefix --keys-only

清理etcd所有key
etcdctl del "" --prefix

删除key
etcdctl del ${path}


添加etcd到集群
etcdctl member  add etcd-10.139.6.124 --peer-urls=http://10.139.6.124:4001

从集群删除etcd
etcdctl  member remove ${ID}

指定endpoints
etcdctl --endpoints=http://10.136.45.18:2379   member list --write-out=table

添加节点
etcdctl --endpoints=http://10.139.3.22:3379 member add eventetcd-10.139.6.124  --peer-urls=http://10.139.6.124:5001
etcdctl --endpoints=http://10.139.3.22:3379 member add eventetcd-10.139.6.124  --peer-urls=http://10.139.6.124:5001
etcdctl --endpoints=http://10.139.3.22:3379 member add eventetcd-10.139.6.222  --peer-urls=http://10.139.6.222:5001

指定证书访问
etcdctl --cacert=/etc/kubernetes/pki/etcd/ca.crt  --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --endpoints=https://10.120.2.7:2379  member list --write-out=table

添加节点
etcdctl --cacert=/etc/kubernetes/pki/etcd/ca.crt  --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --endpoints=https://10.120.2.7:2379 member add 120-4-7-sh-1037-b10.yidian.com --peer-urls=https://10.120.4.7:2380

--initial-cluster-state=existing参数说明:
用于指示本次是否为新建集群。有两个取值new和existing。如果填为existing,则该member启动时会尝试与其他member交互。
集群初次建立时,要填为new,集群运行过程中,一个member故障后恢复时填为existing

11. 常见问题

1)lib系统包升级

卸载
yum -y remove libseccomp-2.3.1-4.el7.x86_64

下载
wget http://rpmfind.net/linux/centos/8-stream/BaseOS/x86_64/os/Packages/libseccomp-2.5.1-1.el8.x86_64.rpm

安装
rpm -ivh libseccomp-2.5.1-1.el8.x86_64.rpm

2)kubelet启动容器失败

mv /var/run/containerd/containerd.sock.ttrpc /var/run/containerd/containerd.sock

12. 检查etcd服务状态

[root@l-shahe-k8s-etcd1.ops.prod ~]$ netstat  -nlpt                                                                                                                                                                                        
Active Internet connections (only servers)                                                                                                                                                                                                 
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name                                                                                                                                           
tcp        0      0 10.120.174.14:22        0.0.0.0:*               LISTEN      1038/sshd                                                                                                                                                  
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1404/master                                                                                                                                                
tcp        0      0 0.0.0.0:15867           0.0.0.0:*               LISTEN      1015711/ydbot-clien                                                                                                                                        
tcp        0      0 0.0.0.0:18624           0.0.0.0:*               LISTEN      1015711/ydbot-clien                                                                                                                                        
tcp        0      0 127.0.0.1:25345         0.0.0.0:*               LISTEN      912920/containerd                                                                                                                                          
tcp        0      0 127.0.0.1:10248         0.0.0.0:*               LISTEN      834062/kubelet                                                                                                                                             
tcp        0      0 127.0.0.1:10250         0.0.0.0:*               LISTEN      834062/kubelet                                                                                                                                             
tcp        0      0 10.120.174.14:2379      0.0.0.0:*               LISTEN      854765/etcd                                                                                                                                                
tcp        0      0 10.120.174.14:2380      0.0.0.0:*               LISTEN      854765/etcd                                                                                                                                                
tcp        0      0 127.0.0.1:2381          0.0.0.0:*               LISTEN      854765/etcd                                                                                                                                                
tcp        0      0 127.0.0.1:10255         0.0.0.0:*               LISTEN      834062/kubelet                                                                                                                                             
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      745/rpcbind                                                                                                                                                
[root@l-shahe-k8s-etcd1.ops.prod ~]$ crictl ps                                                                                                                                                                                             
CONTAINER           IMAGE               CREATED             STATE               NAME                ATTEMPT             POD ID              POD                                                                                            
08ddd339c3b18       fce326961ae2d       2 days ago          Running             etcd                6                   d941444ee7455       etcd-l-shahe-k8s-etcd1.ops.prod                                      

13. 证书更新

更新k8s证书
https://github.com/yuyicai/update-kube-cert

检查证书的有效期是否生效
for i in `ls /etc/kubernetes/pki/etcd/*.crt`; do echo $i | openssl x509 -noout -dates -in $i;done

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/370538.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年网络安全某市赛竞赛任务书

竞赛任务书 一、竞赛时间 共计3小时。 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段单兵模式系统渗透测试 任务一 数据库服务渗透测试 100分钟 150 任务二 Windows操作系统渗透测试 200 任务三 Linux操作系统渗透测试 150 任务四 Web安…

【人工智能 AI】什么是人工智能? What is Artificial Intelligence

目录 Introduction to Artificial Intelligence人工智能概论 What is Artificial Intelligence? 什么是人工智能?

ProtoBuf介绍

1 编码和解码编写网络应用程序时&#xff0c;因为数据在网络传输的都是二进制字节码数据&#xff0c;在发送数据时进行编码&#xff0c;在接受数据时进行解码codec&#xff08;编码器&#xff09;的组成部分有2个&#xff1a;decoder&#xff08;解码器&#xff09;和encoder&a…

回归预测 | MATLAB实现BO-CNN-BiLSTM贝叶斯优化卷积双向长短期记忆网络数据回归预测

回归预测 | MATLAB实现BO-CNN-BiLSTM贝叶斯优化卷积双向长短期记忆网络数据回归预测 目录回归预测 | MATLAB实现BO-CNN-BiLSTM贝叶斯优化卷积双向长短期记忆网络数据回归预测效果一览基本介绍模型搭建程序设计参考资料效果一览 基本介绍 基于贝叶斯优化卷积双向长短期记忆网络(…

自动化测试整理 --- STAF/STAX Robot Framework

题记:上周花了点时间学习开源的自动化测试框架Robot Framework,结合自己之前的自动化经验&#xff0c;就想周末写篇文章整理下。 目前&#xff0c;所在项目的自动化测试框架是基于STAF/STAX的拓展&#xff0c;围绕STAX执行引擎&#xff0c;扩展了测试用例的创建、管理&#xf…

验证功能覆盖率收集时per_instance=1可能导致覆盖率线性增长

验证覆盖率收集时&#xff0c;发现coverage database达到了惊人的256G&#xff0c;如下&#xff1a; 进入database中的testdata目录下的用例定位发现&#xff0c;问题出在这个文件&#xff1a; testbench.inst.xml其大小基本等同于验证用例覆盖率的大小。 这个文件时怎么产…

C++函数新思想和标准的输入和输出

欢迎来观看温柔了岁月.c的博客目前设有C学习专栏C语言项目专栏数据结构与算法专栏目前主要更新C学习专栏&#xff0c;C语言项目专栏不定时更新待C专栏完毕&#xff0c;会陆续更新C项目专栏和数据结构与算法专栏一周主要三更&#xff0c;星期三&#xff0c;星期五&#xff0c;星…

【决策树】一文看懂图解决策树原理:信息熵、条件熵与信息增益

本文用过图解的方式并结合实际案例的方式讲述了决策树的基本原理&#xff0c;主要包含信息熵、条件熵与信息增益的概念与计算方式&#xff0c;以及如何选择各个决策节点&#xff08;即&#xff1a;选择信息增益最大的特征&#xff09;。 想要PDF文档的小伙伴&#xff0c;通过关…

[SCOI2005]骑士精神(C++,启发式搜索)

题目描述 输入格式 第一行有一个正整数 TTT&#xff08;T≤10T \le 10T≤10)&#xff0c;表示一共有 TTT 组数据。 接下来有 TTT 个 555 \times 555 的矩阵&#xff0c;0 表示白色骑士&#xff0c;1 表示黑色骑士&#xff0c;* 表示空位。两组数据之间没有空行。 输出格式 …

【Node.js】详细记录express路由和中间件

Node.js路由的概念什么是路由Express中的路由路由的匹配过程路由的使用创建路由模块文件注册路由模块文件为路由模块添加前缀Express中间件Express中间件格式定义中间件函数定义全局生效的中间件函数中间件的作用定义多个全局中间件局部生效的中间件定义多个局部生效的中间件了…

Ae:使用代理

如果希望加快合成的预览或渲染速度&#xff0c;可考虑对素材使用代理 Proxy。虽然在 Ae 中&#xff0c;可以指定任何的静止图像或视频为代理&#xff0c;但一般情况下还是建议创建源素材的低分辨率版本来作为代理。对素材创建或指定代理后&#xff0c;可随意切换是否使用代理来…

物联网在医疗保健领域的5大创新应用

如今&#xff0c;物联网的发展越来越迅速&#xff0c;我们无法低估物联网在当今世界的重要性。大多数人每天都会使用到物联网设备。例如&#xff0c;当你使用智能手表来跟踪你的锻炼时&#xff0c;你就间接地使用了物联网的功能。由于物联网为世界带来了很多有效的帮助&#xf…

【涨薪技术】0到1学会性能测试 —— LR录制回放事务检查点

前言 上一次推文我们分享了性能测试分类和应用领域&#xff0c;今天带大家学习性能测试工作原理、事务、检查点&#xff01;后续文章都会系统分享干货&#xff0c;带大家从0到1学会性能测试&#xff0c;另外还有教程等同步资料&#xff0c;文末免费获取~ 01、LR工作原理 通常…

【原创】java+swing+mysql生肖星座查询系统设计与实现

今天我们来开发一个比较有趣的系统&#xff0c;根据生日查询生肖星座&#xff0c;输入生日&#xff0c;系统根据这个日期自动计算出生肖和星座信息反馈到界面。我们还是使用javaswingmysql去实现这样的一个系统。 功能分析&#xff1a; 生肖星座查询系统&#xff0c;顾名思义…

【uniapp微信小程序】跨平台使用echarts的方案选择踩坑

一、前言 使用Uniapp&#xff08;vue&#xff09;开发微信小程序&#xff0c;想用echarts图表实现类似github热力图的效果。 简要列一些可行或不可行的方案。 二、方案对比 1. 【应用】&#xff1a;微信小程序原生开发 有echarts官网提供的跨平台方案&#xff1a;在微信小程…

CHATGPT是新的“搜索引擎终结者”吗?百度是否慌了

ChatGPT 以其非凡的自然语言处理 &#xff08;NLP&#xff09; 能力和清晰的响应风靡全球&#xff0c;有望带来一场重大的技术革命。在不知不觉中&#xff0c;叙事转向了ChatGPT与百度的对决&#xff0c;因为来自OpenAI的智能和健谈的聊天机器人已经慢慢获得了“潜在的百度终结…

Allegro如何快速删除孤立铜皮操作指导

Allegro如何快速删除孤立铜皮操作指导 在做PCB设计的时候,铺铜是常用的设计方式,在PCB设计完成之后,需要删除PCB上孤立的铜皮,即铜皮有网络但是却没有任何连接 如下图 通过Status报表也可以看到Isolated shapes 如何快速地删除孤立铜皮,具体操作如下 点击Shape

C++ sort()函数和priority_queue容器中比较函数的区别

普通的queue是一种先进先出的数据结构&#xff0c;元素在队列尾追加&#xff0c;而从队列头删除。priority_queue中元素被赋予优先级。在创建的时候根据优先级进行了按照从大到小或者从小到大进行了自动排列&#xff08;大顶堆or小顶堆&#xff09;。可以以O(log n) 的效率查找…

23. 合并K个升序链表

解题思路&#xff1a;两种解法&#xff0c;一种优先级队列&#xff0c;一种分治优先级队列解法&#xff1a;以节点中存储的值进行排序依次遍历所有的链表&#xff0c;把链表中的节点加入到优先级队列中依次从优先级队列的弹出并删除最小的元素加入到新的链表中&#xff0c;直到…

final关键字是什么以及final的四种用法

final定义&#xff1a; final的翻译是最终&#xff0c;也就表示着它修饰的对象是最后一次被继承等含义。 被final修饰的对象不能更改其定义以及变量值 final的四种用法 一、修饰变量 public class Demo1 {public final int a 6;public void test() {a 10;} final修饰变量…