本文使用的操作系统环境为centos7.6最小化安装(安装的时候勾选开发工具选项),CPU内存资源为2核4G,硬盘100G
一、master节点安装
1、环境准备
#更改主机名,关闭防火墙和核心防护功能 [root@localhost ~]# hostnamectl set-hostname master [root@master ~]# systemctl stop firewalld [root@master ~]# systemctl disable firewalld [root@master ~]# setenforce 0 [root@master ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux #关闭linux的swap系统交换区 [root@master ~]# swapoff -a
2、安装docker环境
docker安装可参考–Docker部署安装及常规操作
3、安装kubeadm
#先配置kubernetes的yum源 [root@master ~]# cat </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 #安装kubeadm、kubectl、kubelet [root@master ~]# yum install -y kubeadm kubectl kubelet [root@master ~]# systemctl start kubelet [root@master ~]# systemctl enable kubelet
4、修改kubeadm的默认配置
#运行kubeadm config print init-defaults命令,获得默认的初始化配置文件
[root@master ~]# kubeadm config print init-defaults > init-config.yaml
#更改配置文件
[root@master ~]# vi init-config.yaml
apiVersion: kubeadm.k8s.io/v1beta3
......
localAPIEndpoint:
advertiseAddress: 1.2.3.4 //将此处的地址更换为master节点安装的地址
bindPort: 6443
......
kind: ClusterConfiguration
kubernetesVersion: 1.22.2 //可更改需要安装的kubernetes的版本号
networking:
dnsDomain: cluster.local
serviceSubnet: 10.96.0.0/12 //可更改需要的pod的地址范围
scheduler: {}
5、下载kubernetes的相关镜像
#使用命令kubeadm config images list,可查看到镜像列表 [root@master ~]# kubeadm config images list k8s.gcr.io/kube-apiserver:v1.22.2 k8s.gcr.io/kube-controller-manager:v1.22.2 k8s.gcr.io/kube-scheduler:v1.22.2 k8s.gcr.io/kube-proxy:v1.22.2 k8s.gcr.io/pause:3.5 k8s.gcr.io/etcd:3.5.0-0 k8s.gcr.io/coredns/coredns:v1.8.4 #直接下载会提示报错无法连接到“https://k8s.gcr.io/v2/”,需要先从阿里云下载相关的镜像源 [root@master ~]# kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers #下载完成后使用docker tag命令将镜像名称改为上面对应的镜像名称 [root@master ~]# docker tag 更改前的镜像名:版本 更改后的镜像名:版本
6、使用kubeadm init命令安装master节点
#因为kubernetes默认的设置cgroup驱动为“systemd”,而docker服务的cgroup驱动默认值为“cgroups”,需要将其改为“systemd”,与kubernetes保持一致
#修改docker的配置文件
[root@master ~]# vi /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
......
}
#使用kubeadm init命令安装master节点
[root@master ~]# kubeadm init --config=init-config.yaml
#执行命令后如出现“[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1”报错,执行如下命令即可
[root@master ~]# echo "1">/proc/sys/net/bridge/bridge-nf-call-iptables
[root@master ~]# echo "1">/proc/sys/net/bridge/bridge-nf-call-ip6tables
#提示"Your Kubernetes control-plane has initialzied successfully!"表示master节点安装完成
#安装安装完成的提示执行命令
[root@master ~]# mkdir -p $HOME/.kube
[root@master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
[root@master ~]# export KUBEConFIG=/etc/kubernetes/admin.conf
#下面就可以使用kubectl命令对kubernetes集群进行访问了
[root@master ~]# kubectl get pods -A
二、添加node节点
1、安装kubeadm(系统准备环境与master节点安装的1,2步骤一致)
#先配置kubernetes的yum源 #安装kubeadm、kubelet [root@node1 ~]# yum install -y kubeadm kubelet [root@node1 ~]# systemctl start kubelet [root@node1 ~]# systemctl enable kubelet
2、使用kubeadm join命令加入集群,可以从master节点安装完成的提示复制过来
#先依照master节点安装的第5步骤,下载相关的镜像 [root@node1 ~]# kubeadm join 192.168.7.110:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:bba000fdae5710be28aa2cc55bb22538a324dd4e4ee4dc5b9753e16aa7ca6eb8 #添加完成后在master节点执行命令kubectl get nodes [root@master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION node NotReady control-plane,master 22h v1.22.2 node1 NotReady22h v1.22.2
3、此时查看到的所有节点的状态为“NotReady”,需要安装CNI插件
[root@master ~]# kubectl apply -f "https://docs.projectcalico.org/manifests/calico.yaml" #安装完成后再次查看状态为“Ready”,kubernetes集群安装完成 [root@master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION node Ready control-plane,master 22h v1.22.2 node1 Ready22h v1.22.2 [root@master ~]# kubectl get pods -A NAMESPACE NAME READY STATUS RESTARTS AGE kube-system calico-kube-controllers-75f8f6cc59-l6jbg 1/1 Running 9 (1h ago) 1h kube-system calico-node-nlsz2 1/1 Running 1 (1h ago) 1h kube-system calico-node-zvl7w 1/1 Running 1 (1h ago) 1h kube-system coredns-78fcd69978-ks5fl 1/1 Running 1 (1h ago) 1h kube-system coredns-78fcd69978-pkhw2 1/1 Running 1 (1h ago) 1h kube-system etcd-node 1/1 Running 1 (1h ago) 1h kube-system kube-apiserver-node 1/1 Running 1 (1h ago) 1h kube-system kube-controller-manager-node 1/1 Running 4 (1h ago) 1h kube-system kube-proxy-hdrjh 1/1 Running 1 (1h ago) 1h kube-system kube-proxy-wzxhv 1/1 Running 1 (1h ago) 1h kube-system kube-scheduler-node 1/1 Running 4 (1h ago) 1h



