Centos7 Kubernetes1.8+docker容器集群

网友投稿 252 2022-11-12

Centos7 Kubernetes1.8+docker容器集群

Kubernetes(k8s)

Kubernetes简介

Kubernetes是google开源的多主机容器管理工具, 简称:k8s,它带有人性化图形管理界面, 它在开源社区很受欢迎github上已经有了20000+的收藏,和7000+的fork。

Kubernetes其特性主要包括:

1、可以非常轻松地开发复杂系统;

2、Kubernetes为微服务架构;

3、系统可以随时随地整体“搬迁”到公有云上;

4、Kubernetes系统架构具备了超强的横向扩容能力。

Kubernetes使用的资源对象

在Kubernetes中,Node、Pod、Replication Controller、Service等概念都可以看作一种资源对象,通过Kubernetes提供的Kubectl工具或者API调用进行操作,并保存在etcd中。

实验环境

系统版本:centos7x3.10.0-514.el7.x86_64

Kubernetes版本:v1.8.3

Kubernetes-node版本:v1.8.3

Docker版本:docker-ce.x86_64 0:18.03.1.ce-1.el7.centos

注:以上最好两个均采用当前最新稳定版本。

关闭防火墙并禁止开机自启

systemctl stop firewalld.servicesystemctl disable firewalld

关闭selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

重启 reboot

搭建k8s集群

master主机(IP:192.168.152.170)

安装组件:etcd kube-apiserver kube-controller-manager kube-scheduler

1、安装kubernetes服务端

1)下载二进制源码包

wget -p /k8s/{bin,cfg}

4)将解压目录里的文件移动到新创建的目录里

2、安装etcd组件(默认版本:etcd.x86_64 0:3.2.22-1.el7)

1)安装etcd

yum -y install etcd

2)编辑etcd的配置文件

vi /etc/etcd/etcd.conf

3)启动etcd服务

#设置etcd服务开机自启

systemctl enable etcd

#启动etcd服务

systemctl start etcd

3、配置kube-apiserver组件

1)创建kube-apiserver配置文件

vi /k8s/cfg/kube-apiserver

#启用日志标准错误KUBE_LOGTOSTDERR="--logtostderr=true"#日志级别KUBE_LOG_LEVEL="--v=4"#Etcd服务地址KUBE_ETCD_SERVERS="--etcd-servers=/lib/systemd/system/kube-apiserver.service

[Unit]Description=Kubernetes API ServerDocumentation=${KUBE_APISERVER_OPTS}ExecStart=/k8s/bin/kube-apiserver \${KUBE_LOGTOSTDERR} \${KUBE_LOG_LEVEL} \${KUBE_ETCD_SERVERS} \${KUBE_API_ADDRESS} \${KUBE_API_PORT} \${KUBE_ADVERTISE_ADDR} \${KUBE_ALLOW_PRIV} \${KUBE_SERVICE_ADDRESSES}Restart=on-failure[Install]WantedBy=multi-user.target

3)启动kube-apiserver服务

#重新加载kube-apiserver服务守护进程

systemctl daemon-reload

#设置kube-apiserver服务开机自启

systemctl enable kube-apiserver

#重启kube-apiserver服务

systemctl restart kube-apiserver

注:apiserver默认支持etcd3,如果是etcd2,需启动时指定版本选项--storage-backend=etcd2

4、配置kube-scheduler组件

1)创建kube-scheduler配置文件

vi /k8s/cfg/kube-scheduler

#启用日志标准错误KUBE_LOGTOSTDERR="--logtostderr=true"#日志级别KUBE_LOG_LEVEL="--v=4"#k8s-master服务地址KUBE_MASTER="--master=192.168.152.170:8080"#指定master为控制台KUBE_LEADER_ELECT="--leader-elect"

2)创建kube-scheduler的systemd服务启动文件

vi /lib/systemd/system/kube-scheduler.service

[Unit]Description=Kubernetes SchedulerDocumentation=\${KUBE_LOGTOSTDERR} \${KUBE_LOG_LEVEL} \${KUBE_MASTER} \${KUBE_LEADER_ELECT}Restart=on-failure[Install]WantedBy=multi-user.target

3)启动kube-scheduler服务

#重新加载kube-scheduler服务守护进程

systemctl daemon-reload

#设置kube-scheduler服务开机自启

systemctl enable kube-scheduler

#重新启动kube-scheduler服务

systemctl restart kube-scheduler

5、配置kube-controller-manager组件

1)创建kube-controller-manager配置文件

vi /k8s/cfg/kube-controller-manager

#启用日志标准错误KUBE_LOGTOSTDERR="--logtostderr=true"#日志级别KUBE_LOG_LEVEL="--v=4"#k8s-master服务地址KUBE_MASTER="--master=192.168.152.170:8080"

2)创建kube-controller-manager的systemd服务启动文件

vi /lib/systemd/system/kube-controller-manager.service

[Unit]Description=Kubernetes Controller ManagerDocumentation=\${KUBE_LOGTOSTDERR} \${KUBE_LOG_LEVEL} \${KUBE_MASTER} \${KUBE_LEADER_ELECT}Restart=on-failure[Install]WantedBy=multi-user.target

3)启动kube-controller-manager服务

#重新加载kube-controller-manager服务守护进程

systemctl daemon-reload

#设置kube-controller-manager服务开机自启

systemctl enable kube-controller-manager

#重新启动kube-controller-manager服务

systemctl restart kube-controller-manager

注:master节点组件全部启动了,需要注意的是服务启动顺序有依赖,先启动etcd,再启动apiserver,其他组件无顺序要求。

6、K8s查看具体组件日志的命令

journalctl –u etcd

journalctl -u kube-apiserver

journalctl -u kube-controller-manager

journalctl -u kube-scheduler

node-1主机(192.168.152.168)

安装组件:kubelet kube-proxy docker

1、安装kubernetes的node-1节点

1)下载二进制源码包

wget -p /k8s/{bin,cfg}

4)将解压目录里的文件移动到新创建的目录里

mv kubernetes/node/bin/{ kubectl,kubelet,kube-proxy} /k8s/bin/

5)创建连接master apiserver配置文件

vi /k8s/cfg/kubelet.kubeconfig

apiVersion: v1kind: Configclusters: cluster:server: localcontexts: context:cluster: localname: localcurrent-context: local

6)创建kubelet配置文件

vi /k8s/cfg/kubelet

#启用日志标准错误KUBE_LOGTOSTDERR="--logtostderr=true"#日志级别KUBE_LOG_LEVEL="--v=4"#Kubelet服务IP地址NODE_ADDRESS="--address=192.168.152.168"#Kubelet服务端口NODE_PORT="--port=10250"#自定义节点名称NODE_HOSTNAME="--hostname-override=192.168.152.168"#kubeconfig路径,指定连接API服务器KUBELET_KUBECONFIG="--kubeconfig=/k8s/cfg/kubelet.kubeconfig"#允许容器请求特权模式,默认falseKUBE_ALLOW_PRIV="--allow-privileged=false"#DNS信息KUBELET_DNS_IP="--cluster-dns=10.0.100.2"KUBELET_DNS_DOMAIN="--cluster-domain=cluster.local"#禁用使用SwapKUBELET_SWAP="--fail-swap-on=false"

7)创建kubelet服务的systemd启动文件

vi /lib/systemd/system/kubelet.service

[Unit]Description=Kubernetes KubeletAfter=docker.serviceRequires=docker.service[Service]EnvironmentFile=-/k8s/cfg/kubeletExecStart=/k8s/bin/kubelet \${KUBE_LOGTOSTDERR} \${KUBE_LOG_LEVEL} \${NODE_ADDRESS} \${NODE_PORT} \${NODE_HOSTNAME} \${KUBELET_KUBECONFIG} \${KUBE_ALLOW_PRIV} \${KUBELET_DNS_IP} \${KUBELET_DNS_DOMAIN} \${KUBELET_SWAP}Restart=on-failureKillMode=process[Install]WantedBy=multi-user.target

8)启动kubelet服务

#重新加载kubelet服务守护进程

systemctl daemon-reload

#设置kubelet服务开机自启

systemctl enable kubelet

#重新启动kubelet服务

systemctl restart kubelet

2、配置kube-proxy组件

1)创建kube-proxy配置文件

vi /k8s/cfg/kube-proxy

#用日志标准错误KUBE_LOGTOSTDERR="--logtostderr=true"#志级别KUBE_LOG_LEVEL="--v=4"#定义节点名称NODE_HOSTNAME="--hostname-override=192.168.152.168"#PI服务地址KUBE_MASTER="--master=/lib/systemd/system/kube-proxy.service

[Unit]Description=Kubernetes ProxyAfter=network.target[Service]EnvironmentFile=/k8s/cfg/kube-proxyExecStart=/k8s/bin/kube-proxy \${KUBE_LOGTOSTDERR} \${KUBE_LOG_LEVEL} \${NODE_HOSTNAME} \${KUBE_MASTER}Restart=on-failure[Install]WantedBy=multi-user.target

3)启动kube-proxy服务

#重新加载kube-proxy服务守护进程

systemctl daemon-reload

#设置kube-proxy服务开机自启

systemctl enable kube-proxy

#重启kube-apiserver服务

systemctl restart kube-proxy

3、安装docker(docker-ce.x86_64 0:18.03.1.ce-1.el7.centos)

1)安装docker-ce的yum源

//下载yum源到本地

wget .x86_64-18.03.1.ce-1.el7.centos

4)启动docker服务

//设置docker开机自启

systemctl enable docker

//启动docker服务

systemctl start docker

//重启docker服务

systemctl restart docker

node-2主机(192.168.152.169)

安装组件:kubelet kube-proxy docker

1、安装kubernetes的node-2节点

1)下载二进制源码包

wget -p /k8s/{bin,cfg}

4)将解压目录里的文件移动到新创建的目录里

mv kubernetes/server/bin/{ kubectl,kubelet,kube-proxy} /k8s/bin/

5)创建连接master apiserver配置文件

vi /k8s/cfg/kubelet.kubeconfig

apiVersion: v1kind: Configclusters: cluster:server: localcontexts: context:cluster: localname: localcurrent-context: local

6)创建kubelet配置文件

vi /k8s/cfg/kubelet

#启用日志标准错误KUBE_LOGTOSTDERR="--logtostderr=true"#日志级别KUBE_LOG_LEVEL="--v=4"#Kubelet服务IP地址NODE_ADDRESS="--address=192.168.152.169"#Kubelet服务端口NODE_PORT="--port=10250"#自定义节点名称NODE_HOSTNAME="--hostname-override=192.168.152.169"#kubeconfig路径,指定连接API服务器KUBELET_KUBECONFIG="--kubeconfig=/k8s/cfg/kubelet.kubeconfig"#允许容器请求特权模式,默认falseKUBE_ALLOW_PRIV="--allow-privileged=false"#DNS信息KUBELET_DNS_IP="--cluster-dns=10.0.100.2"KUBELET_DNS_DOMAIN="--cluster-domain=cluster.local"#禁用使用SwapKUBELET_SWAP="--fail-swap-on=false"

7)创建kubelet服务的systemd启动文件

vi /lib/systemd/system/kubelet.service

[Unit]Description=Kubernetes KubeletAfter=docker.serviceRequires=docker.service[Service]EnvironmentFile=-/k8s/cfg/kubeletExecStart=/k8s/bin/kubelet \${KUBE_LOGTOSTDERR} \${KUBE_LOG_LEVEL} \${NODE_ADDRESS} \${NODE_PORT} \${NODE_HOSTNAME} \${KUBELET_KUBECONFIG} \${KUBE_ALLOW_PRIV} \${KUBELET_DNS_IP} \${KUBELET_DNS_DOMAIN} \${KUBELET_SWAP}Restart=on-failureKillMode=process[Install]WantedBy=multi-user.target

8)启动kubelet服务

#重新加载kubelet服务守护进程

systemctl daemon-reload

#设置kubelet服务开机自启

systemctl enable kubelet

#重新启动kubelet服务

systemctl restart kubelet

2、配置kube-proxy组件

1)创建kube-proxy配置文件

vi /k8s/cfg/kube-proxy#启用日志标准错误KUBE_LOGTOSTDERR="--logtostderr=true"#日志级别KUBE_LOG_LEVEL="--v=4"#自定义节点名称NODE_HOSTNAME="--hostname-override=192.168.152.169"#API服务地址KUBE_MASTER="--master=/lib/systemd/system/kube-proxy.service

[Unit]Description=Kubernetes ProxyAfter=network.target[Service]EnvironmentFile=/k8s/cfg/kube-proxyExecStart=/k8s/bin/kube-proxy \${KUBE_LOGTOSTDERR} \${KUBE_LOG_LEVEL} \${NODE_HOSTNAME} \${KUBE_MASTER}Restart=on-failure[Install]WantedBy=multi-user.target

3)启动kube-proxy服务

#重新加载kube-proxy服务守护进程

systemctl daemon-reload

#设置kube-proxy服务开机自启

systemctl enable kube-proxy

#重启kube-apiserver服务

systemctl restart kube-proxy

3、安装docker(docker-ce.x86_64 0:18.03.1.ce-1.el7.centos)

1)安装docker-ce的yum源

//下载yum源到本地

wget .x86_64-18.03.1.ce-1.el7.centos

4)启动docker服务

//设置docker开机自启

systemctl enable docker

//启动docker服务

systemctl start docker

//重启docker服务

systemctl restart docker

验证群集部署是否成功

1、设置k8s命令的环境变量

echo "export PATH=$PATH:/k8s/bin" >> /etc/profile

注:有几台机器就执行几遍,当前有三台机器上都执行!

2、让环境变量立即生效

source /etc/profile

3、在master节点上用命令查看群节点状态

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈服务器电源管理EIST技术
下一篇:Java中的递归方法示例介绍
相关文章

 发表评论

暂时没有评论,来抢沙发吧~