likes
comments
collection
share

linux-k8s过程记录

作者站长头像
站长
· 阅读数 39

概述

Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,方便进行声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统,其服务、支持和工具的使用范围广泛,前提安装需要docker相关环境,在此不做说明

安装

安装kubelet、kubeadm、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=1
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

安装kubeletkubeadmkubectl

## 查看版本 
yum --showduplicates list kubelet
## 最新版本
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
## 指定版本
yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0

设置开机自启

systemctl enable kubelet
systemctl start kubelet

初始化设置

kubeadm init

异常信息处理 linux-k8s过程记录

[ERROR NumCPU]: the number of available CPUs 1 is less than the required 2

因为机器的cpu不够用,解决措施有两种方法:

其一: 虚拟机话,可以提升虚拟机的cpu资源

其二:忽视这条告警错误,加上 --ignore-preflight-errors=all 参数即可。

kubeadm init \
  --kubernetes-version 1.23.0 \
  --apiserver-advertise-address=0.0.0.0 \
  --service-cidr=10.96.0.0/16 \
 --pod-network-cidr=0.0.0.0/16 \
  --image-repository registry.aliyuncs.com/google_containers  \
  --ignore-preflight-errors=all 

[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1

在/etc/sysctl.conf中添加:

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

执行sysctl -p 时刷新

 sysctl -p

直接执行命令修改内核参数

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

sysctl --system

[ERROR Swap]: running with swap on is not supported. Please disable swap

关闭swap分区,

  1. 临时关闭
swapoff -a
  1. 永久关闭swap
sed -ri 's/.*swap.*/#&/' /etc/fstab

linux-k8s过程记录

配置kubectl

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

查看节点信息

kubectl get nodes

如果没有进行 "配置kubectl" 将会有以下异常 linux-k8s过程记录

正常执行将会看到master主节点,但是states为notReady linux-k8s过程记录

安装 flannel

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

kubectl apply -f kube-flannel.yml

网上的教程比较多,这边不提,注意一个点

  1. 更改 128行的网络配置,要和 pod-network-cidr保持一致,如果你初始化的时候没有配置 pod-network-cidr,需要改一下配置 2.查看flannel是否正常安装
kubectl -n kube-system get pods -o wide

3.安装flannel成功后,节点状态还是显示未准备

kubectl describe nodes

可以查看影响节点为啥没有启动的原因

4.“localhost.localdomain” not found 将master机器的主机名修改为原先的名称, 重启master机器

hostnamectl set-hostname localhost.localdomain

5.异常cni config uninitialized

解决方法:vim /var/lib/kubelet/kubeadm-flags.env

删除其中的 --network-plugin=cni

安装完成

linux-k8s过程记录

转载自:https://juejin.cn/post/7244740852013629498
评论
请登录