安装完系统后使用:cat /etc/redhat-release 查看CentOS版本
如使用 ip addr不能显示IP;则通过 vi /ect/sysconfig/network-scripts/ifcfg-ens33
修改ONBOOT=no改为ONBOOT=yes
然后重启网络服务:service network restart
(在修改了ens33后;使用yum update -y 更新系统正常,原因不清楚)
master:192.168.217.134
node1:192.168.217.133
更新主机名:hostnamectl set-hostname k8s-master
然后使用:bash 更新
master配置主机hosts映射:vi /etc/hosts
192.168.1217.134 k8s-master
192.168.217.133 k8s-node1
将桥接的IPV4流量传递到iptablesde 链:(所有主机)
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
vm.swappiness=0
EOF
使用 sysctl --system #生效
时间同步:
yum install ntpdate -y
ntpdate time.windows,com
内核升级(所有虚机)
查看内核版本:uname -r
#导入ELRepo仓库的公共密钥:rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#安装ELRepo仓库的yum源:rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
安装最新版本内核:yum --enablerepo=elrepo-kernel install kernel-ml
查看系统上的所有可用内核:sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
通过 grub2-set-default 0
命令设置默认内核
设置完后如果未生效,重启虚拟机就好了
下面开始安装k8s
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config #永久
setenforce 0 #临时
# 关闭swap(k8s禁止虚拟内存以提高性能)
sed -ri 's/.*swap.*/#&/' /etc/fstab #永久
swapoff -a #临时
Kubernetes安装具体步骤
所有服务器节点安装 Docker/kubeadm/kubelet/kubectl
Kubernetes 默认容器运行环境是Docker,因此首先需要安装Docker;
(1)安装 Docker(CentOS Docker 安装 | 菜鸟教程)
使用国内 daocloud 一键安装命令:curl -sSL https://get.daocloud.io/docker | sh
使用 Docker 仓库进行安装:
yum install -y yum-utils
yum install -y device-mapper-persistent-data
yum install -y lvm2
使用以下命令来设置稳定的仓库:
sudo yum-config-manager
sudo --add-repo
sudo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker Engine-Community:yum install docker-ce docker-ce-cli containerd.io
列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。
yum list docker-ce --showduplicates | sort -r
通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
启动 Docker: systemctl start docker
通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。
docker run hello-world
查看docker安装信息:docker info
附录
查询docker安装过的包:yum list installed | grep docker
删除安装包:yum remove docker-ce -y
删除镜像/容器等:rm -rf /var/lib/docker
(2)添加阿里元YUM软件源
添加kubernetes.repo
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
(3)安装kubeadm,kubelet和kubectl
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet (先不执行)
部署Kubernetes Master
设置kubeadm文件:
kubeadm init \
--apiserver-advertise-address=192.168.217.134 \
--image-repository registry.aliyuncs.com/google_containers \
--kubenetes-version v1.25.3 \
--service-cidr=10.96.0.0/16 \
--pod-network-codr=10.244.0.0/16 \
--ignore-preflight-errors=all
初始化k8s:
sudo kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.23.5 --pod-network-cidr=192.168.0.0/16
保存好:kubeadm join 192.168.217.134:6443 --token fyhorr.7pbwsmyp2kptua5u \
--discovery-token-ca-cert-hash sha256:6298c56a7b74439fcbd1a5203617eca9061fa118af1d5aca6f5c2bf96fc20075
在node主机执行,加入集群
为kubectl准备Kubeconfig文件 ;这是执行完上面的操作需要执行的命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
使用kubectl get nodes查看节点安装情况
部署容器网络插件
通过:journalctl -u kubelet查看日志
下载yum文件:wget https://docs.projectcalico.org/manifests/calico.yaml
更改calico.yaml文件
- name: CALICO_IPV4POOL_CIDR
value: "10.244.0.0/16" #更改值为10.244.0.0/16
再使用:kubectl apply -f calico.yaml更新一下
使用:kubectl get pods -n kube-system查看网络的准备情况
使用:watch kubectl get pods -n calico-system确认所有 pod 都在运行
参考资料:
CentOS7.6安装Kubernetes v1.15.1(我们一起踩过的坑)_Elephant的技术博客_51CTO博客