linux-k8s过程记录
概述
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
安装kubelet
、kubeadm
、kubectl
## 查看版本
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
异常信息处理
[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分区,
- 临时关闭
swapoff -a
- 永久关闭swap
sed -ri 's/.*swap.*/#&/' /etc/fstab
配置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" 将会有以下异常
正常执行将会看到master主节点,但是states为notReady
安装 flannel
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.yml
网上的教程比较多,这边不提,注意一个点
- 更改 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
安装完成
转载自:https://juejin.cn/post/7244740852013629498