工具
- VMware 15
- centos 7.6
步骤
-
创建虚拟机
-
关闭防火墙
systemctl disable firewalld systemctl stop firewalld
-
关闭SELinux
setenforce 0 或修改系统文件/etc/sysconfig/selinux, 将SELINUX=enforcing修改成SELINUX=disabled,然后重启Linux。
-
创建文件 /etc/yum.repos.d/kubernetes.repo
cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=kubernetes Repository baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=0 EOF
-
安装kubelet kubeadm kubectl
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
-
安装docker
#卸载docker yum remove docker \ docker-ce\ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine #安装yum-config-manager yum install -y yum-utils device-mapper-persistent-data lvm2 #添加阿里镜像源 yum-config-manager \ --add-repo \ https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo #安装 Docker CE yum makecache fast yum install docker-ce #安装18.09 可以到https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/docker-ce-18.09.8-3.el7.x86_64.rpm找到对应版本号 yum install -y docker-ce-18.09.8-3.el7.x86_64 #或者使用脚本自动安装最新版本 curl -fsSL get.docker.com -o get-docker.sh sh get-docker.sh --mirror Aliyun
-
启动
#设置docker开机启动,并启动docker systemctl enable docker && systemctl start docker #设置kubelet开机启动,并启动kubelet systemctl enable kubelet && systemctl start kubelet
配置k8s
#设置k8s源
cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
vim kubernetes.repo
#写入内容
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enabled=1
#安装k8syum-key
wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
rpm --import yum-key.gpg
yum install docker-ce kubelet kubeadm kubectl
vim /usr/lib/systemd/system/docker.service
#添加docker服务启动环境变量
Environment=“HTTPS_PROXY=http://www.ik8s.io:10080”
Environment=“NO_PROXY=127.0.0.1/8,172.168.1.0/16”
systemctl daemon-reload
systemctl restart docker
[root@localhost ~]# cat /proc/sys/net/bridge/bridge-nf-call-iptables
1
[root@localhost ~]# cat /proc/sys/net/bridge/bridge-nf-call-ip6tables
1
#如果以上命令不为1
vim /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
[root@localhost ~]# rpm -ql kubelet
/etc/kubernetes/manifests
/etc/sysconfig/kubelet
/usr/bin/kubelet
/usr/lib/systemd/system/kubelet.service
[root@localhost ~]# cat /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS=
vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="–fail-swap-on=false"
#启动kubelet
[root@localhost ~]# systemctl start kubelet
[root@localhost ~]# systemctl status kubelet
[root@localhost ~]# systemctl stop kubelet
[root@localhost ~]# systemctl enable kubelet
[root@localhost ~]# systemctl enable docker
[root@localhost ~]# kubeadm init --help
kubeadm init --kubernetes-version=v1.15.2 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
#下载k8s镜像
由于连不上谷歌所以
使用kubeadm config images list列出所有需要下载的镜像
k8s.gcr.io/kube-apiserver:v1.15.2
k8s.gcr.io/kube-controller-manager:v1.15.2
k8s.gcr.io/kube-scheduler:v1.15.2
k8s.gcr.io/kube-proxy:v1.15.2
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.10
k8s.gcr.io/coredns:1.3.1
到docker hub找到对应版本的
docker pull caisin/kube-apiserver:v1.15.2
docker pull caisin/kube-controller-manager:v1.15.2
docker pull caisin/kube-scheduler:v1.15.2
docker pull caisin/kube-proxy:v1.15.2
docker pull caisin/pause:3.1
docker pull caisin/etcd:3.3.10
docker pull caisin/coredns:1.3.1
#tag成谷歌的镜像
docker tag caisin/kube-apiserver:v1.15.2 k8s.gcr.io/kube-apiserver:v1.15.2
docker tag caisin/kube-controller-manager:v1.15.2 k8s.gcr.io/kube-controller-manager:v1.15.2
docker tag caisin/kube-scheduler:v1.15.2 k8s.gcr.io/kube-scheduler:v1.15.2
docker tag caisin/kube-proxy:v1.15.2 k8s.gcr.io/kube-proxy:v1.15.2
docker tag caisin/pause:3.1 k8s.gcr.io/pause:3.1
docker tag caisin/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10
docker tag caisin/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1
#rmi不需要的镜像
docker rmi caisin/kube-apiserver:v1.15.2
docker rmi caisin/kube-controller-manager:v1.15.2
docker rmi caisin/kube-scheduler:v1.15.2
docker rmi caisin/kube-proxy:v1.15.2
docker rmi caisin/pause:3.1
docker rmi caisin/etcd:3.3.10
docker rmi caisin/coredns:1.3.1
#安装
kubeadm init --kubernetes-version=v1.15.2 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
#安装完成
kubeadm join 172.168.1.135:6443 --token gq843s.8cp4siytb8ste66w
–discovery-token-ca-cert-hash sha256:1f191b8f072bc7e0ddbc3c14a0785da98b747d589b5bc2b3439bf7ffdaca07b2