怎么样固定ip ifcong 使用 vim /etc/sysconfig/network-scripts/ifcfg-ens33
static yes IPADDR=192.168.1.145 NETMASK=255.255.255.0 GATEWAY192.168.1.2 DNS1=114.114.114.114
service network restart
1共性操作 三台虚拟机都执行!!!! 该操作要求每个节点均需执行的相同操作,包括修改hosts、时间同步、禁用firewalld、禁用selinux、禁用swap、网桥设置和安装K8s等。 cat >> /etc/hosts << EOF 192.168.1.130 master 192.168.1.131 node1 192.168.1.132 node2 EOF 上面的ip地址换成自己的ip地址! 可以通过下面命令查看etc是否写入hosts cat /etc/hosts
时间同步 systemctl start chronyd && systemctl enable chronyd 验证时间同步 date
禁用firewalld systemctl stop firewalld && systemctl disable firewalld
禁用selinux setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
禁用swap 临时关闭, 重启失效:swapoff -a 永久关闭: swapoff -a && sed -i '/ swap / s/^(.*)$/#\1/g' /etc/fstab 一般情况下 直接选择永久关闭! 默认情况下,K8s为了追求高性能,不建议使用交换分区,为此它要求每个节点禁用swap,否则各个节点中的kubelet无法运行。
网桥设置
cat > /etc/sysctl.d/kubernetes.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF
执行下面命令让他立即起效 sysctl --system
docker安装 1.yum-config-manager --add-repo mirrors.aliyun.com/docker-ce/l… 2.yum makecache fast 真正安装docker的环节 3yum -y install docker-ce 随linux启动docker自启动 4.systemctl enable docker && systemctl start docker 查看docker的版本 5.docker -v 这一步下载的比较慢 慢慢等待 切记一定要打开外网!
设置daemon.json: 1.mkdir -p /etc/docker 2. tee /etc/docker/daemon.json <<-'EOF' { "exec-opts": ["native.cgroupdriver=systemd"], "registry-mirrors": ["ha65u7j9.mirror.aliyuncs.com"] } EOF 使用以下命令立即起效重新加载重启docker 3.systemctl daemon-reload && systemctl restart docker
安装K8s 镜像: cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernetes] name=Kubernetes baseurl=mirrors.aliyun.com/kubernetes/… enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=mirrors.aliyun.com/kubernetes/… mirrors.aliyun.com/kubernetes/… EOF 通过以下命令查看是否成功 cat /etc/yum.repos.d/kubernetes.repo
通过yum命令安装k8s 1. yum install -y kubeadm-1.23.17 kubectl-1.23.17 kubelet-1.23.17 2.systemctl enable kubelet 以下命令可以不执行,是用来查看日志的 没有什么日志输出 会卡在哪里 卡在哪里使用ctal+c退出 3. journalctl -xefu kubelet
共性操作结束了以下是异性操作 只在master虚拟机操作
异性操作 第一个ip设置为master 在主节点 设置hostname: hostnamectl set-hostname master 第二个ip设置为 node1 hostnamectl set-hostname node1 第三个ip设置为 node2 hostnamectl set-hostname node2 以上的要跟最上面的ip地址一致!!
改完之后使用reboot重启一下
初始化Kubernetes,保存该命令输出的一个join命令
kubeadm init
--apiserver-advertise-address=192.168.1.130
--image-repository registry.aliyuncs.com/google_containers
--kubernetes-version v1.23.17
--service-cidr=10.96.0.0/12
--pod-network-cidr=10.244.0.0/16
--ignore-preflight-errors=all
第一行的ip地址要改成最上面的master地址! 第三行的版本号要跟刚才下载的版本号一致
虚拟机一定要用root用户登录 root用户: echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile 让下面的环境变量立即起效 source /etc/profile
配置flannel flannel([ˈflænl])和calico([ˈkælɪkoʊ])都是用于k8s节点之间容器网络通信的一个k8s组件, flannel可以为不同node节点的分配不同的子网,实现容器间的跨机通信,从而实现整个kubenets层级通信。 1下载 1cd /opt 下载到opt目录里面 wget raw.githubusercontent.com/coreos/flan… 下载完成以后上传 kubectl apply -f /opt/kube-flannel.yml 或 wget raw.githubusercontent.com/coreos/flan… -P /opt 这一步完成以后代表master节点结束了 node 设置hostname: node1ip设置 hostnamectl set-hostname node1 node2ip设置 hostnamectl set-hostname node2 如果刚才做过了 就不需要再重复做了 每个node节点都要执行上面命令,n的值和/etc/hosts 文件从节点相一致
执行kubeadm join命令,该命令是master节点 初始化k8s时生成的!! 以下命令需要自己去maser节点赋值出来 以下的命令是你可以执行在node节点去执行,把node节点加入到集群里面来
kubeadm join 192.168.1.130:6443 --token 5hj7w9.kt3fnduortroodcd
--discovery-token-ca-cert-hash sha256:b6e461346caae2c96220ec38d5435d8863ded95383743105733615df74b0a496
在maser找到这个在node1和node2去执行,,,,你别复制我这个 你去maser里面找自己的,环境不一样产生的环境变量也不一样
环境配置 echo "export KUBECONFIG=/etc/kubernetes/kubelet.conf" >> /etc/profile source /etc/profile