标签:apply 后台 dash try ntpdate func mon https emc


1、设置永久主机名称,然后重新登录
|
1
2
3
|
$ sudo hostnamectl set-hostname master$ sudo hostnamectl set-hostname node1$ sudo hostnamectl set-hostname node2 |
2、修改 /etc/hostname 文件,添加主机名和 IP 的对应关系:
|
1
2
3
4
|
$ vim /etc/hosts192.168.10.103 master192.168.10.104 node1192.168.10.105 node2 |
|
1
2
|
$ yum -y install ntpdate$ sudo ntpdate cn.pool.ntp.org |
在每台机器上关闭防火墙:
① 关闭服务,并设为开机不自启
|
1
2
|
$ sudo systemctl stop firewalld$ sudo systemctl disable firewalld |
② 清空防火墙规则
|
1
2
|
$ sudo iptables -F && sudo iptables -X && sudo iptables -F -t nat && sudo iptables -X -t nat$ sudo iptables -P FORWARD ACCEPT |
1、如果开启了 swap 分区,kubelet 会启动失败(可以通过将参数 --fail-swap-on 设置为false 来忽略 swap on),故需要在每台机器上关闭 swap 分区:
|
1
|
$ sudo swapoff -a |
2、为了防止开机自动挂载 swap 分区,可以注释 /etc/fstab 中相应的条目:
|
1
|
$ sudo sed -i ‘/ swap / s/^\(.*\)$/#\1/g‘ /etc/fstab |
1、关闭 SELinux,否则后续 K8S 挂载目录时可能报错 Permission denied :
|
1
|
$ sudo setenforce 0 |
2、修改配置文件,永久生效;
|
1
2
|
$ vim /etc/selinux/configSELINUX=disabled |
以下操作在3个服务器上,都要执行!
(1)添加docker-ce 源信息
|
1
|
[root@master ~]# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo |
(2)修改docker-ce 源
|
1
|
[root@master ~]# sed -i ‘s@download.docker.com@mirrors.tuna.tsinghua.edu.cn/docker-ce@g‘ /etc/yum.repos.d/docker-ce.repo |
|
1
2
3
4
5
6
7
|
[root@node2 ~]# cd /etc/yum.repos.d/[root@master yum.repos.d]# vim kubernetes.repo[kubernetes]name=Kubernetes Repobaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/gpgcheck=0enable=1 |
|
1
2
3
4
5
6
7
8
|
[root@master yum.repos.d]# yum clean all[root@master yum.repos.d]# yum repolistrepo id repo name statusbase base 9,363docker-ce-stable/x86_64 Docker CE Stable - x86_64 20epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 12,663kubernetes Kubernetes Repo 246repolist: 22,292 |
(1)安装
|
1
2
|
[root@master ~]# yum -y install docker-ce-17.03.2.ce 下载稳定版本17.03.2[root@master ~]# yum -y install kubeadm-1.11.1 kubelet-1.11.1 kubectl-1.11.1 |
(2)安装docker报错(虚拟机中可能会遇到,如果没有报错请忽略)
Error: Package: docker-ce-18.03.1.ce-1.el7.centos.x86_64 (docker-ce-stable)
Requires: container-selinux >= 2.9
报错原因: docker-ce-selinux 版本过低
解决办法:在https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/x86_64/stable/Packages/网站下载对应版本的docker-ce-selinux,安装即可
|
1
|
[root@master ~]# yum -y install https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.3.ce-1.el7.noarch.rpm |
再次安装docker 成功:
|
1
|
[root@master ~]# yum -y install docker-ce-17.03.2.ce |
(1)添加加速器到配置文件
|
1
2
3
4
5
6
|
[root@master ~]# mkdir -p /etc/docker[root@master ~]# tee /etc/docker/daemon.json <<-‘EOF‘{ "registry-mirrors": ["https://registry.docker-cn.com"]}EOF |
(2)启动服务
|
1
2
3
|
[root@master ~]# systemctl daemon-reload[root@master ~]# systemctl start docker[root@master ~]# systemctl enable docker.service |
(3)打开iptables内生的桥接相关功能,已经默认开启了,没开启的自行开启
|
1
2
3
4
|
[root@node1 ~]# cat /proc/sys/net/bridge/bridge-nf-call-ip6tables1[root@node1 ~]# cat /proc/sys/net/bridge/bridge-nf-call-iptables1 |
(1)修改配置文件
|
1
2
3
|
[root@master ~]# vim /etc/sysconfig/kubeletKUBELET_EXTRA_ARGS="--fail-swap-on=false"KUBE_PROXY=MODE=ipvs |
(2)先设为开机自启
|
1
|
[root@master ~]# systemctl enable kubelet.service |
因为K8S集群还未初始化,所以kubelet 服务启动不成功,下面初始化完成,再启动即可。
在master服务器上执行,完成以下所有操作
(1)使用kubeadm init 进行初始化(需要进行很多操作,所以要等待一段时间)
|
1
|
[root@master ~]# kubeadm init --kubernetes-version=v1.11.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap |
释:
注:
因为kubeadm需要拉取必要的镜像,这些镜像需要“***”;所以可以先在docker hub或其他镜像仓库拉取kube-proxy、kube-scheduler、kube-apiserver、kube-controller-manager、etcd、pause镜像;并加上 --ignore-preflight-errors=all 忽略所有报错即可。
(2)下载镜像
我已经将我下载的镜像导出,放入我的网盘,有需要的打赏一杯咖啡钱,私聊博主;博主会很快恢复的;
|
1
2
3
4
5
6
|
[root@master ~]# docker image load -i kube-apiserver-amd64.tar.gz[root@master ~]# docker image load -i kube-proxy-amd64.tar.gz[root@master ~]# docker image load -i kube-controller-manager-amd64.tar.gz[root@master ~]# docker image load -i kube-scheduler-amd64.tar.gz[root@master ~]# docker image load -i etcd-amd64.tar.gz[root@master ~]# docker image load -i pause.tar.gz |
(3)初始化命令成功后,创建.kube目录
|
1
2
|
[root@master ~]# mkdir -p $HOME/.kube[root@master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config |
(1)拉取了必须的镜像
|
1
2
3
4
5
6
7
8
|
[root@master ~]# docker image lsREPOSITORY TAG IMAGE ID CREATED SIZEk8s.gcr.io/kube-proxy-amd64 v1.11.1 d5c25579d0ff 6 months ago 97.8 MBk8s.gcr.io/kube-scheduler-amd64 v1.11.1 272b3a60cd68 6 months ago 56.8 MBk8s.gcr.io/kube-apiserver-amd64 v1.11.1 816332bd9d11 6 months ago 187 MBk8s.gcr.io/kube-controller-manager-amd64 v1.11.1 52096ee87d0e 6 months ago 155 MBk8s.gcr.io/etcd-amd64 3.2.18 b8df3b177be2 9 months ago 219 MBk8s.gcr.io/pause 3.1 da86e6ba6ca1 13 months ago 742 kB |
(2)开启了kube-apiserver 的6443端口
|
1
2
|
[root@master ~]# ss -nutlptcp LISTEN 0 128 :::6443 :::* users:(("kube-apiserver",pid=1609,fd=3)) |
(3)使用kubectl命令查询集群信息
查询组件状态信息
|
1
2
3
4
5
|
[root@master ~]# kubectl get csNAME STATUS MESSAGE ERRORcontroller-manager Healthy ok scheduler Healthy ok etcd-0 Healthy {"health": "true"} |
查询集群节点信息(因为还没有部署好flannel,所以节点显示为NotReady)
|
1
2
3
|
[root@master ~]# kubectl get nodesNAME STATUS ROLES AGE VERSIONmaster NotReady master 13m v1.11.1 |
查询名称空间,默认
|
1
2
3
4
5
|
[root@master ~]# kubectl get nsNAME STATUS AGEdefault Active 13mkube-public Active 13mkube-system Active 13m |
(1)直接使用kubectl 执行gitlab上的flannel 部署文件
|
1
2
3
4
5
6
7
8
9
10
|
[root@master ~]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlclusterrole.rbac.authorization.k8s.io/flannel createdclusterrolebinding.rbac.authorization.k8s.io/flannel createdserviceaccount/flannel createdconfigmap/kube-flannel-cfg createddaemonset.extensions/kube-flannel-ds-amd64 createddaemonset.extensions/kube-flannel-ds-arm64 createddaemonset.extensions/kube-flannel-ds-arm createddaemonset.extensions/kube-flannel-ds-ppc64le createddaemonset.extensions/kube-flannel-ds-s390x created |
(2)会看到下载好的flannel 的镜像
|
1
2
3
|
[root@master ~]# docker image ls |grep flannelquay.io/coreos/flannel v0.10.0-amd64 f0fad859c909 12 months ago 44.6 MBquay.io/coreos/flannel v0.9.1 2b736d06ca4c 14 months ago 51.3 MB |
(3)验证
① master 节点已经Ready
|
1
2
3
|
[root@master ~]# kubectl get nodesNAME STATUS ROLES AGE VERSIONmaster Ready master 14m v1.11.1 |
② 查询kube-system名称空间下
|
1
2
3
|
[root@master ~]# kubectl get pods -n kube-system(指定名称空间) |grep flannelNAME READY STATUS RESTARTS AGEkube-flannel-ds-amd64-4wck2 1/1 Running 0 1m |
在2个node 服务器上执行,完成以下所有操作
(1)初始化node节点;下边的命令是master初始化完成后,下边有提示的操作命令
|
1
|
[root@node1 ~]# kubeadm join 192.168.10.103:6443 --token t56pjr.cm898tj09xm9pkqz --discovery-token-ca-cert-hash sha256:3ffe1c840e8a4b334fc2cc3d976b0e3635410e52e3653bb39585b8b557f81bc4 --ignore-preflight-errors=Swap |
(2)从节点如果不能“***”,只需从本地上传2个镜像即可;还是我网盘中的镜像
|
1
2
|
[root@node1 ~]# docker image load -i kube-proxy-amd64.tar.gz[root@node1 ~]# docker image load -i pause.tar.gz |
(1)查询2个节点的镜像
|
1
2
3
4
5
|
[root@node1 ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZEk8s.gcr.io/kube-proxy-amd64 v1.11.1 d5c25579d0ff 6 weeks ago 97.8 MBquay.io/coreos/flannel v0.10.0-amd64 f0fad859c909 7 months ago 44.6 MBk8s.gcr.io/pause 3.1 da86e6ba6ca1 8 months ago 742 kB |
(2)等2个从节点上下载好镜像,初始化完成,再在主上查询验证
|
1
2
3
4
5
|
[root@master ~]# kubectl get nodesNAME STATUS ROLES AGE VERSIONmaster Ready master 28m v1.11.1node1 Ready <none> 7m v1.11.1node2 Ready <none> 2m v1.11.1 |
(3)在主节点查询kube-system名称空间下关于node节点pod的信息
|
1
2
3
4
5
|
[root@master ~]# kubectl get pods -n kube-system -o wide |grep nodekube-flannel-ds-amd64-fcm9x 1/1 Running 15 91d 192.168.130.105 node2kube-flannel-ds-amd64-hzkp7 1/1 Running 17 91d 192.168.130.104 node1kube-proxy-f2kkn 1/1 Running 34 139d 192.168.130.104 node1kube-proxy-kkqln 1/1 Running 35 139d 192.168.130.105 node2 |
至此,kubernetes集群已经搭建安装完成;kubeadm帮助我们在后台完成了所有操作;想要自己全部手动搭建kubernetes集群
kubernetes系列03—kubeadm安装部署K8S集群
标签:apply 后台 dash try ntpdate func mon https emc
原文地址:https://www.cnblogs.com/liwenzhang/p/10828089.html