二进制包方式安装部署三节点k8s

一 、集群情况如下,master作为k8s的主节点,在slave1上搭建docker的私库

Master

192.168.235.128

etcd、kube-apiserver、kube-controller-manager、 kubescheduler、docker

slave1

192.168.235.129

kube-proxy、kubelet、docker、docker私库

slave2

192.168.235.131

kube-proxy、kubelet、docker

 

二、配置

1、每个节点上关闭防火墙

(1)关闭防火墙
systemctl stop firewalld.service

(2)禁止firewall开机启动

systemctl disable firewalld.service

(3)查看默认防火墙状态(关闭后显示not running ,开启后显示 running)

firewall-cmd –state

2、每个节点上修改权限和建立文件夹

(1)sudo chmod –R +777 /opt

(2)sudo chmod –R +777 /usr/bin/

(3)mkdir /opt/k8s

3、每个节点上配置docker

(1)设置yum源

拷贝“每个节点”文件夹下/etc/yum.repos.d/docker.repo中的docker.repo文件到/etc/yum.repos.d/目录

(2)安装docker

yum install docker-engine

(3)安装后查看docker版本

docker –v

(4)是否需要设置国内镜像??

4、在slave1上配置docker私服

(1)docker pull registry

(2)配置国内源和设置私服信赖

拷贝“slave节点”文件夹下文件夹内的daemon.json到slave1的/etc/docker/目录下。(文件中需要配置私服的ip

(3)重启docker并设置开机启动

systemctl restart docker

systemctl enable docker

(4)启动私服

docker run -di --name=registry -p 5000:5000 registry

(5)提交镜像到私服

docker pull kubernetes/pause

docker tag docker.io/kubernetes/pause:latest 192.168.126.143:5000/google_containers/pauseamd64.3.0

docker push 192.168.126.143:5000/google_containers/pause-amd64.3.0

(6)查看是否提交成功

http://192.168.235.129:5000/v2/_catalog

5、在master上配置etcd

(1)拷贝“master节点”文件夹etcd-v3.3.9-linux-amd64.tar到/opt/k8s并解压,tar -xzvf etcd-v3.3.9-linux-amd64.tar,之后将解压目录内的etcd和etcdctl复制到/usr/bin目录

(2)拷贝“master节点”中的etcd.service 文件到/usr/lib/systemd/system/,并创建目录mkdir -p /var/lib/etcd/

(3)启动与测试etcd服务

systemctl daemon-reload

systemctl enable etcd.service

systemctl start etcd.service

etcdctl cluster-health

6、在master上配置kube-apiserver

(1)拷贝“每个节点”文件夹kubernetes-server-linux-amd64.tar到/opt/k8s并解压,tar -xzvf kubernetes-server-linux-amd64.tar,之后将/opt/k8s/kubernetes/server/bin目录下的kube-apiserver kube-controller-manager kube-scheduler kubectl复制到/usr/bin目录

cd /opt/k8s/kubernetes/server/bin

cp kube-apiserver kube-controller-manager kube-scheduler kubectl /usr/bin/

(2)拷贝“master节点”文件夹中的kube-apiserver.service文件到/usr/lib/systemd/system/

(3)创建目录:mkdir /etc/kubernetes并拷贝“master节点”文件夹中的apiserver文件到/etc/kubernetes

7、在master上配置kube-controller-manager

(1)拷贝“master节点”文件夹中的kube-controller-manager.service文件到/usr/lib/systemd/system/

(2)拷贝“master节点”文件夹中的controller-manager文件到/etc/kubernetes/(文件中需要设置—master为主节点的ip地址

8、在master上配置kube-scheduler

(1)拷贝“master节点”文件夹中的kube-scheduler.service文件到/usr/lib/systemd/system/

(2)拷贝“master节点”文件夹中的scheduler文件到/etc/kubernetes/(文件中需要设置—master为主节点的ip地址

9、在slave1和slave2上配置kubelet

(1)拷贝“每个节点”文件夹kubernetes-server-linux-amd64.tar到/opt/k8s并解压,tar -xzvf kubernetes-server-linux-amd64.tar,之后将/opt/k8s/kubernetes/server/bin目录下的kubelet、kube-proxy复制到/usr/bin目录

cd /opt/k8s/kubernetes/server/bin

cp kubelet kube-proxy /usr/bin/

(2)拷贝“slave节点”文件夹中的kubelet.service文件到/usr/lib/systemd/system/并创建文件sudo chmod -R +777 /var/lib

mkdir -p /var/lib/kubelet

(3)创建/ect/kubernetes目录mkdir /ect/kubernetes并拷贝“slave节点”文件夹中的kubelet文件到/ect/kubernetes(文件中需要设置--hostname-override为本机的ip地址

(4)拷贝“slave节点”文件夹中的kubeconfig文件到/ect/kubernetes(文件中需要设置server为master的ip地址

10、在slave1和slave2上配置kube-proxy

(1)拷贝“slave节点”文件夹中的kube-proxy.service文件到/usr/lib/systemd/system/

(2)拷贝“slave节点”文件夹中的proxy文件到/ect/kubernetes(文件中需要设置--master为master的ip地址

11、master启动

完成以上配置后,按顺序启动服务

systemctl daemon-reload

systemctl enable kube-apiserver.service

systemctl start kube-apiserver.service

systemctl enable kube-controller-manager.service

systemctl start kube-controller-manager.service

systemctl enable kube-scheduler.service

systemctl start kube-scheduler.service

检查每个服务的健康状态:

systemctl status kube-apiserver.service

systemctl status kube-controller-manager.service

systemctl status kube-scheduler.service

12、slave启动

systemctl daemon-reload

systemctl enable kubelet

systemctl start kubelet

systemctl status kubelet

systemctl enable kube-proxy

systemctl start kube-proxy

systemctl status kube-proxy

13、测试

(1)拷贝“master节点”文件夹下的nginx-rc.yamlnginx-svc.yaml到/opt/k8s/ 文件夹中

(2)提交rc和service描述文件,创建服务

kubectl create -f nginx-rc.yaml

kubectl create -f nginx-svc.yaml

(3)查看当前命名空间下的pod

 kubectl get pods

(4)查看所有容器列表

kubectl get all

14、更多细节请参考其余四个文件。

15、kubectl get pods时no resource found的问题

(1)在slave节点上修改/etc/kubernetes/kubelet配置为KUBELET_ARGS="--pod_infra_container_image=192.168.126.143:5000/google_containers/pauseamd64.3.0"(和slave1上私服提交的镜像相对应,ip为私服所在slave1的ip)

(2)在master节点上修改/etc/kubernetes/apiserver,找到KUBE_ADMISSION_CONTROL,去掉SecurityContextDeny,ServiceAcc

ount

注:直接拷贝文件过去应该是已经修改好的,应该是不需要设置,这里写出来是为了注意一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值