YUN安装Kubernetes:1.18.0版本
软件架构
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具
yum安装k8s
资源配置
操作系统 | IP地址 | 主机名 | 主要软件 | 配置 | 备注 |
---|---|---|---|---|---|
centos7.9 | 192.168.10.128 | master | docker | 2C2G | |
centos7.9 | 192.168.10.129 | node1 | docker | 2C2G | |
centos7.9 | 192.168.10.130 | node2 | docker | 2C2G |
基础环境
关闭防火墙【在全部节点执行】
systemctl stop firewalld systemctl disable firewalld
关闭selinux【在全部节点执行】
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config setenforce 0
关闭swap【在全部节点执行】
swapoff -a # 临时关闭 vi /etc/fstab 注释到swap那一行 # 永久关闭 sed -i 's/.*swap.*/#&/g' /etc/fstab
修改主机名【在全部节点执行】
hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2
添加主机名与IP对应关系【在全部节点执行】
cat >>/etc/hosts<<EOF
192.168.10.128 master
192.168.10.129 node1
192.168.10.130 node2EOF
将桥接的IPv4流量传递到iptables的链【在全部节点执行】
cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system
安装docker【在全部节点执行】
yum -y install wget wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo yum -y install docker-ce-18.09.9-3.el7 # 启动docker,并设置docker开机自启 systemctl start docker systemctl enable docker # 配置加速,并设置驱动 cat > /etc/docker/daemon.json <<EOF { "registry-mirrors": ["https://6ze43vnb.mirror.aliyuncs.com"], "exec-opts": ["native.cgroupdriver=cgroupfs"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" } EOF # 加载daemon并重启docker systemctl daemon-reload systemctl restart docker
添加阿里云YUM源【在全部节点执行】
cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF
安装kubeadm,kubelet和kubectl【在全部节点执行】
三个版本需统一,若更换版本只需改版本号即可
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0 systemctl enable kubelet
初始化master节点【在master节点执行】
-
只在master节点执行
-
由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
-
执行成功以后最后结果会输出
kubeadm init \ --apiserver-advertise-address=192.168.10.128 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.18.0 \ --service-cidr=10.1.0.0/16 \ --pod-network-cidr=10.244.0.0/16 # 执行成功以后最后几行结果会输出(每次都不一样根据自己实际生成的为准,这个是node节点加入集群使用) kubeadm join 192.168.207.131:6443 --token m42oxn.6a8dk04txtpxd0kt \ --discovery-token-ca-cert-hash sha256:743178d212dcf0bbf40e1a8d8e3f74604035363b3e085835d7901d57d7263836 ##--kubernetes-version v1.16.0 若上边修改版本,此选项也需修改,同上 # 在master节点执行 mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config #在node节点执行 kubeadm join 192.168.207.131:6443 --token m42oxn.6a8dk04txtpxd0kt \ --discovery-token-ca-cert-hash sha256:743178d212dcf0bbf40e1a8d8e3f74604035363b3e085835d7901d57d7263836
使用本地镜像
上传k8s_1.18.0到/root/下,载入镜像
for i in $(ls /root/k8s_1.18.0);do docker load -i /root/k8s_1.18.0 $i ;done
安装Pod网络插件(CNI)【在master节点执行】
-
上传kube-flannel.yaml文件到/root/
-
也可使用calico 使用flannel网络
-
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.yml kubectl get pods -n kube-system
查看节点状态
kubectl get cs
kubectl get node