k8s部署(centos7)
Kubernetes简介及Aliyun环境部署(V1.21.2)
centos7 kubernetes(k8s)1.12集群部署与使用(四):Node节点部署
Redhat 7安装docker缺少包fuse-overlayfs解决方法
Kubernetes集群搭建超详细总结(CentOS版)
使用 Rancher 部署 k8s 集群
aliyun镜像加速器
https://9oggfmz6.mirror.aliyuncs.com
centos7.8使用kubeadm创建kubernetes集群–> 完整版
Centos7安装K8S
kubernetes安装(国内网络+阿里云)
-
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld -
关闭 selinux(2,3根据自己情况选择哈)将 SELinux 设置为 permissive 模式(相当于将其禁用)
sudo setenforce 0
sudo sed -i ‘s/^SELINUX=enforcing$/SELINUX=permissive/’ /etc/selinux/config -
关闭 swap
swapoff -a # 临时关闭
vim /etc/fstab # 永久关闭
#注释掉 /dev/mapper/centos-swap swap swap defaults 0 0 这行
systemctl reboot #重启生效
free ‐m #查看下swap交换区是否都为0,如果都为0则swap关闭成功 -
给三台机器分别设置主机名
hostnamectl set‐hostname 主机名称
第一台:k8s-master 第二台:k8s-node1 第三台:k8s-node2
cat >> /etc/hosts << EOF
192.168.2.64 k8s-master
192.168.2.59 k8s-node1
192.168.2.51 k8s-node2
EOF -
将桥接的IPv4流量传递到iptables
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
-
设置时间
yum install ntpdate -y
ntpdate -u ntp.api.bz -
清理过往版本docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 安装docker依赖:
yum install -y yum-utils device-mapper-persistent-data lvm2 - 添加阿里的docker源:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo - 安装18.09.6版本的docker:
k8s和docker版本是有兼容问题的,尝试安装最新的docker 有点问题。
yum list docker-ce --showduplicates | sort -r | grep 18.09.6 - 启动docker并创建开机自启动:
systemctl restart docker && systemctl enable docker - 安装 bash-completion 后,可用tab键补齐几乎任何内容,包括参数、文件、目录甚至包名等.
yum -y install bash-completion
source /etc/profile.d/bash_completion.sh #使其生效 - 配置镜像加速:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://4z7jtuuf.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"] #更改docker驱动为systemd
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
[root@k8s-master01 ~]# cat /etc/docker/daemon.json
{
"insecure-registries": ["10.185.16.62"]
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {"max-size": "100m"},
"registry-mirrors": ["https://dca8zh55.mirror.aliyuncs.com"]
}
- 安装docker
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum install docker-ce docker-ce-cli containerd.io -y
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
- 修改docker驱动
执行kubeadm init集群初始化时遇到:
[WARNING IsDockerSystemdCheck]: detected “cgroupfs” as the Docker
cgroup driver. The recommended driver is “systemd”.
[警告IsDockerSystemdCheck]:检测到“cgroupfs”作为Docker cgroup驱动程序。
推荐的驱动程序是“systemd”
#新增配置文件
cat >> /etc/docker/daemon.json << EOF
{
"exec-opts":["native.cgroupdriver=systemd"]
}
EOF
#重启docker
systemctl restart docker
systemctl status docker
8. yum源切换与yum k8s
#https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
sudo yum update -y #针对修改repo_gpgcheck=0
# sudo yum install -y kubelet-1.19.4 kubeadm-1.19.4 kubectl-1.19.4 #可以根据github发布版本,指定
# sudo yum install -y kubelet-1.20.0 kubeadm-1.20.0 kubectl-1.20.0 #可以根据github发布版本,指定
sudo yum install -y kubelet kubeadm kubectl #最好不要指定版本,默认更新为最新
sudo systemctl enable --now kubelet
sudo systemctl start kubelet
#sudo systemctl status kubelet 此时kubelet还没有正常准备,待kubeadm init后master节点会ok,将node节点join添加后kubelet也会正常
配置阿里云kubernetes软件源
报错:[Errno -1] repomd.xml signature could not be verified for kubernetes Trying other mirror.
解决:https://github.com/kubernetes/kubernetes/issues/60134
处理:repo_gpgcheck=0
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
- 检查工具安装
yum list installed | grep kubelet
yum list installed | grep kubeadm
yum list installed | grep kubectl
kubeadm创建集群
此处需要注意(9、10)均在k8s-master机器上执行指令
ip为master的ip地址,其次注意版本,剩下的无需改动
17. 初始化
# 前提是cpu需要2核以上,内存ram需要2G以上(1700M以上)
kubeadm init --apiserver-advertise-address=192.168.2.64 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.23.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
报错:
containerd 1.4.9 Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService
cat <<EOF > /etc/containerd/config.toml
[plugins."io.containerd.grpc.v1.cri"]
systemd_cgroup = true
EOF
systemctl restart containerd
此处如果执行失败,可能master的IP填写错误或者未填写 --apiserver-advertise-address 172.28.12.148,重新执行以上命令kubeadm init
此处如果执行失败,可能是磁盘或者内存或者cpu资源不够
kubeadm reset
- 配置 kubectl 命令工具
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
问题“The connection to the server…:6443 was refused - did you specify the right host or port?”的处理!
master安装完成,可使用一下命令查看configmap列表以验证。
kubectl -n kube-system get configmap
- yum针对软件包操作常用命令:
1.使用YUM查找软件包
命令:yum search
2.列出所有可安装的软件包
命令:yum list
3.列出所有可更新的软件包
命令:yum list updates
4.列出所有已安装的软件包
命令:yum list installed
5.列出所有已安装但不在 Yum Repository 内的软件包
命令:yum list extras
6.使用YUM获取软件包信息
命令:yum info
7.列出所有可更新的软件包信息
命令:yum info updates
8.列出所有已安装的软件包信息
命令:yum info installed
9.列出所有已安装但不在 Yum Repository 内的软件包信息
命令:yum info extras
10.列出软件包提供哪些文件
命令:yum provides