美文网首页
Docker Kubernetes 环境搭建

Docker Kubernetes 环境搭建

作者: 墨夕晨 | 来源:发表于2020-06-22 11:29 被阅读0次

教程总指导地址https://www.cnblogs.com/xiangsikai/p/9995800.html

本片内容修复原教程部分问题

docker教程总指导地址https://www.cnblogs.com/caoweixiong/p/12186736.html

docker教程亲测无问题。就不修改了与搬运了。

Docker Kubernetes 环境搭建

节点规划

版本

系统:Centos 7.4 x64

Docker版本:18.09.0

Kubernetes版本:v1.8

etcd存储版本:etcd-3.2.22

部署

管理节点:192.168.1.79

安装插件:etcd

安装插件:kube-apiserver

安装插件:kube-controller-manager

安装插件:kube-scheduler

工作节点:192.168.1.78

安装插件:kubelet

安装插件:kube-proxy

安装插件:docker

工作节点:192.168.1.77

安装插件:kubelet

安装插件:kube-proxy

安装插件:docker

Kubernetes 部署方式

1、kubeadm工具快捷安装kubernetes集群。kubeadm工具安装会屏蔽很多细节。

2、通过kubernetes二进制包安装。

kubernetes二进制包:https://github.com/kubernetes/kubernetes

kubernetes是基于GO语言开发的需要安装Go语言环境。

注:这里我采用第2种,由于安装环境繁琐,将事先编译好的Kubernetes工具包来进行环境部署。

kubernetes工具包:https://pan.baidu.com/s/1xvAadiCZmxKs22Zpqw3VNQ

密码:pyjq


1、管理节点:安装etcd存储

1.1、安装etcd存储

yum install etcd -y

1.2、编辑配置文件添加配置参数

vim /etc/etcd/etcd.conf

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"

ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379

1.3、重启服务,添加开机自启动

systemctl enable etcd

systemctl restart etcd

1.4、查看监听端口

netstat -antp | grep etcd

显示如下:

tcp 0 0 127.0.0.1:2379 0.0.0.0:* LISTEN 15737/etcd

tcp 0 0 127.0.0.1:2380 0.0.0.0:* LISTEN 15737/etcd

tcp 0 0 127.0.0.1:2379 127.0.0.1:59936 ESTABLISHED 15737/etcd

tcp 0 0 127.0.0.1:59936 127.0.0.1:2379 ESTABLISHED 15737/etcd


2、管理节点:安装kubernetes Master 运行节点组织

2.1、把下载完k8s压缩包上传到77、78、79 任何目录下并解压

unzip K8S部署包.zip

2.2、解压master包加入执行文件

unzip master.zip;chmod +x *

2.3、创建目录

mkdir /opt/kubernetes/{bin,cfg} -p

2.4、将压缩文件kube移动到bin目录下

mv kube-apiserver kube-controller-manager kube-scheduler kubectl /opt/kubernetes/bin

2.5、修改apiserver.sh、controller-manager.sh、scheduler.sh脚本文件

vim apiserver.sh

# Mster监听地址

IPMASTER_ADDRESS=${1:-"192.168.1.79"}

# ETCD数据库服务地址

ETCD_SERVERS=${2:-"http://192.168.1.79:2379"}

vim controller-manager.sh

# Mster监听地址

IPMASTER_ADDRESS=${1:-"192.168.1.79"}

vim scheduler.sh

# Mster监听地址

IPMASTER_ADDRESS=${1:-"192.168.1.79"}

2.6、运行kubernetes启动脚本 masterIP地址默认端口8080 加etcd地址

./apiserver.sh 192.168.1.79 http://192.168.1.79:2379

查看进程

命令:ps -ef | grep kube

root 16724 1 99 15:47 ? 00:00:02 /opt/kubernetes/bin/kube-apiserver --logtostderr=true --v=4 --etcd-servers=http://192.168.1.97:2379 --storage-backend=etcd2 --insecure-bind-address=0.0.0.0 --insecure-port=8080 --kubelet-port=10250 --advertise-address=192.168.1.97 --allow-privileged=false --service-cluster-ip-range=10.10.10.0/24

查看启动日志

命令:journalctl -u kube-apiserver

-- Logs begin at 三 2018-11-07 10:10:28 CST, end at 一 2018-11-12 15:44:12 CST. --

11月 12 15:39:57 management systemd[1]: Started Kubernetes API Server.

11月 12 15:39:57 management systemd[1]: Starting Kubernetes API Server...

11月 12 15:39:57 management kube-apiserver[15964]: Flag --kubelet-port has been deprecated, kubelet-port is deprecated and will be removed.

11月 12 15:39:57 management kube-apiserver[15964]: I1112 15:39:57.747966 15964 flags.go:52] FLAG: --address="0.0.0.0"

11月 12 15:39:57 management kube-apiserver[15964]: I1112 15:39:57.748035 15964 flags.go:52] FLAG: --admission-control="[AlwaysAdmit]"

11月 12 15:39:57 management kube-apiserver[15964]: I1112 15:39:57.748050 15964

2.7、运行scheduler.sh调度脚本 加masterIP地址默认端口8080

./scheduler.sh 192.168.1.79

查看启动日志

命令:journalctl -u kube-controller-manager

-- Logs begin at 三 2018-11-07 10:10:28 CST, end at 一 2018-11-12 15:55:57 CST. --

11月 12 15:52:54 management systemd[1]: Started Kubernetes Controller Manager.

11月 12 15:52:54 management systemd[1]: Starting Kubernetes Controller Manager...

11月 12 15:52:54 management kube-controller-manager[17311]: I1112 15:52:54.296770  17311 flags.go:52] FLAG: --address="0.0.0.0"

11月 12 15:52:54 management kube-controller-manager[17311]: I1112 15:52:54.296977  17311 flags.go:52] FLAG: --allocate-node-cidrs="false"

11月 12 15:52:54 management kube-controller-manager[17311]: I1112 15:52:54.297001  17311 flags.go:52] FLAG: --allow-untagged-cloud="false"

11月 12 15:52:54 management kube-controller-manager[17311]: I1112 15:52:54.297007  17311 flags.go:52] FLAG: --allow-verification-with-non-compliant-keys="false"

11月 12 15:52:54 management kube-controller-manager[17311]: I1112 15:52:54.297015  17311 flags.go:52] FLAG: --alsologtostderr="false"

2.8、将kubernetes添加到环境变量,并设置立即生效

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

source /etc/profile


3、工作节点1与2:kubernetes Node 运行节点组织

3.1、解压node包并加入执行文件

unzip node.zip;chmod +x *

3.2、创建目录

mkdir -p /opt/kubernetes/{bin,cfg}

3.3、将压缩文件kube移动到bin目录下

mv kubelet kube-proxy /opt/kubernetes/bin

3.4、修改脚本配置文件

vim kubelet.sh

# MASTER服务端地址

MASTER_ADDRESS=${1:-"192.168.1.79"}

# 本地工作节点地址

NODE_ADDRESS=${2:-"192.168.1.78"}

# DNS地址

DNS_SERVER_IP=${3:-"192.168.1.1"}

DNS_DOMAIN=${4:-"cluster.local"}

# 配置文件地址 主要用于连接API服务KUBECONFIG_DIR=${KUBECONFIG_DIR:-/opt/kubernetes/cfg}

3.5、禁用所有的swap分区,不然启动会报错

swapoff -a

3.6、启动kubelet.sh管理本机运行容器生命周期服务脚本

./kubelet.sh 192.168.1.79 192.168.1.78 192.168.1.1

查看进程

命令:ps -aux | grep kubelet

root 57592 2.9 0.8 622884 72492 ? Ssl 16:30 0:01 /opt/kubernetes/bin/kubelet --logtostderr=true --v=4 --address=192.168.1.78 --hostname-override=192.168.1.78 --kubeconfig=/opt/kubernetes/cfg/kubelet.kubeconfig --allow-privileged=false --cluster-dns=10.10.10.2 --cluster-domain=cluster.local

root      57708  0.0  0.0 112732  2304 pts/0    S+  16:31  0:00 grep --color=auto kubelet

查看日志

命令:journalctl -u kubelet

-- Logs begin at 三 2018-11-07 09:36:45 CST, end at 一 2018-11-12 16:32:28 CST. --

11月 12 16:20:08 slave02 systemd[1]: Started Kubernetes Kubelet.

11月 12 16:20:08 slave02 systemd[1]: Starting Kubernetes Kubelet...

11月 12 16:20:08 slave02 kubelet[57178]: I1112 16:20:08.295744  57178 flags.go:52] FLAG: --address="192.168.1.78"

11月 12 16:20:08 slave02 kubelet[57178]: I1112 16:20:08.295853  57178 flags.go:52] FLAG: --allow-privileged="false"

11月 12 16:20:08 slave02 kubelet[57178]: I1112 16:20:08.295887  57178 flags.go:52] FLAG: --alsologtostderr="false"

11月 12 16:20:08 slave02 kubelet[57178]: I1112 16:20:08.295899  57178 flags.go:52] FLAG: --anonymous-auth="true"

查看监听端口

命令:netstat -antp | grep 10250

tcp 0 0 192.168.1.78:10250 0.0.0.0:* LISTEN 57592/kubelet

4、管理节点:测试查看集群节点是否加入

查看节点加入信息

kubectl get node

NAME STATUS ROLES AGE VERSION

192.168.1.77 Ready 5m v1.8.0

192.168.1.78 Ready 5m v1.8.0

查看组件运行状态

kubectl get componentstatus

NAME STATUS MESSAGE ERROR

scheduler Healthy ok

controller-manager Healthy ok

etcd-0 Healthy {"health":"true"}

查看服务版本

kubectl version

Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"6e937839ac04a38cac63e6a7a306c5d035fe7b0a", GitTreeState:"clean", BuildDate:"2017-09-28T22:57:57Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

Server Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"6e937839ac04a38cac63e6a7a306c5d035fe7b0a", GitTreeState:"clean", BuildDate:"2017-09-28T22:46:41Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

相关文章

网友评论

      本文标题:Docker Kubernetes 环境搭建

      本文链接:https://www.haomeiwen.com/subject/pramxktx.html