二进制安装K8S

案例环境:

 

server端二进制文件

https://dl.k8s.io/v1.8.13/kubernetes-server-linux-amd64.tar.gz
node端二进制文件
https://dl.k8s.io/v1.8.13/kubernetes-node-linux-amd64.tar.gz

全部修改主机名配置host解析

在192.168.100.101上的配置

master服务器安装etcd

配置etcd,并启动服务器配置开机自启动(注意URLS)

yum install etcd -y
tar -zxf kubernetes-server-linux-amd64.tar.gz
mkdir -p /opt/kubernetes/{bin,cfg}
mv kubernetes/server/bin/{kube-apiserver,kube-scheduler,kube-controller-manager,kubectl} /opt/kubernetes/bin


创建apiserver配置文件

cat > /opt/kubernetes/cfg/kube-apiserver<<EOF

KUBE_LOGTOSTDERR='--logtostderr=true'
KUBE_LOG_LEVEL="--v=4"
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.100.101:2379"
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
KUBE_API_PORT="--insecure-port=8080"
KUBE_ADVERTISE_ADDR="--advertise-address=192.168.100.101"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.10.10.0/24"
EOF


创建apiserver服务文件

cat >/lib/systemd/system/kube-apiserver.service<<EOF
[Unit]
Description=Kubernetes API Server
Documentation=https://github.com/kubernetes/kubernetes
[Service]
EnvironmentFile=-/opt/kubernetes/cfg/kube-apiserver
#ExecStart=/opt/kubernetes/bin/kube-apiserver ${KUBE_APISERVER_OPTS}
ExecStart=/opt/kubernetes/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
EOF
 

启动服务设置开机自启动

systemctl daemon-reload

systemctl enable kube-apiserver

systemctl start kube-apiserver
 

配置scheduler

cat >/opt/kubernetes/cfg/kube-scheduler <<EOF

KUBE_LOGTOSTDERR="--logtostderr=true"

KUBE_LOG_LEVEL="--v=4"

KUBE_MASTER="--master=192.168.100.101:8080"

KUBE_LEADER_ELECT="--leader-elect"

EOF
 

创建服务器启动文件

cat>/lib/systemd/system/kube-scheduler.service<<EOF
[Unit]
Description=Kubernetes Scheduler
Documentation=https://github.com/kubernetes/kubernetes
[Service]
EnvironmentFile=-/opt/kubernetes/cfg/kube-scheduler
ExecStart=/opt/kubernetes/bin/kube-scheduler \
\${KUBE_LOGTOSTDERR} \
\${KUBE_LOG_LEVEL} \
\${KUBE_MASTER} \
\${KUBE_LEADER_ELECT}
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
 

启动服务

systemctl daemon-reload

systemctl enable kube-scheduler

systemctl restart kube-scheduler
 

创建contorller-manager配置文件

cat > /opt/kubernetes/cfg/kube-controller-manager<<EOF

KUBE_LOGTOSTDERR="--logtostderr=true"

KUBE_LOG_LEVEL="--v=4"

KUBE_MASTER="--master=192.168.100.101:8080"

EOF
 

创建系统启动文件

cat > /lib/systemd/system/kube-controller-manager.service<<EOF
[Unit]
Description=Kubernetes Controller Manager
Documentation=https://github.com/kubernetes/kubernetes
[Service]
EnvironmentFile=-/opt/kubernetes/cfg/kube-controller-manager
ExecStart=/opt/kubernetes/bin/kube-controller-manager \
\${KUBE_LOGTOSTDERR} \
\${KUBE_LOG_LEVEL} \
\${KUBE_MASTER} \
\${KUBE_LEADER_ELECT}
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
 

启动服务

systemctl daemon-reload

systemctl enable kube-controller-manager

systemctl start kube-controller-manager
 

至此master就已经配置完成,如若配置中有错误,可以通过#journalctl -u 服务名称查看报错

配置环境变量

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

source /etc/profile
 

在192.168.100.102上的配置

安装配置docker(安装docker之前将yum源中的gpgcheck改为0)


 

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum makecache fast

yum install docker-ce -y

tar -zxf kubernetes-node-linux-amd64.tar.gz

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

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

创建kubeconfig配置文件

cat > /opt/kubernetes/cfg/kubelet.kubeconfig <<EOF

apiVersion: v1

kind: Config

clusters:

  - cluster:

      server: http://192.168.100.101:8080

    name: local

contexts:

  - context:

      cluster: local

    name: local

current-context: local

EOF
 

创建配置文件

cat> /opt/kubernetes/cfg/kubelet  <<EOF

# 启用日志标准错误

KUBE_LOGTOSTDERR="--logtostderr=true"

# 日志级别

KUBE_LOG_LEVEL="--v=4"

# Kubelet服务IP地址

NODE_ADDRESS="--address=192.168.100.102"

# Kubelet服务端口

NODE_PORT="--port=10250"

# 自定义节点名称

NODE_HOSTNAME="--hostname-override=192.168.100.102"

# kubeconfig路径,指定连接API服务器

KUBELET_KUBECONFIG="--kubeconfig=/opt/kubernetes/cfg/kubelet.kubeconfig"

# 允许容器请求特权模式,默认false

KUBE_ALLOW_PRIV="--allow-privileged=false"

# DNS信息

KUBELET_DNS_IP="--cluster-dns=10.10.10.2"

KUBELET_DNS_DOMAIN="--cluster-domain=cluster.local"

# 禁用使用Swap

KUBELET_SWAP="--fail-swap-on=false"

EOF
 

创建systemd服务文件

cat>/lib/systemd/system/kubelet.service<<EOF

[Unit]

Description=Kubernetes Kubelet

After=docker.service

Requires=docker.service

[Service]

EnvironmentFile=-/opt/kubernetes/cfg/kubelet

ExecStart=/opt/kubernetes/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-failure

KillMode=process

[Install]

WantedBy=multi-user.target

EOF
 

启动服务

systemctl daemon-reload
systemctl enable kubelet
systemctl start kubelet
 

node节点安装kube-proxy

创建配置文件

cat>/opt/kubernetes/cfg/kube-proxy  <<EOF

# 启用日志标准错误

KUBE_LOGTOSTDERR="--logtostderr=true"

# 日志级别

KUBE_LOG_LEVEL="--v=4"

# 自定义节点名称

NODE_HOSTNAME="--hostname-override=192.168.100.102"

# API服务地址

KUBE_MASTER="--master=http://192.168.100.101:8080"

EOF
 

创建systemd服务文件

cat > /lib/systemd/system/kube-proxy.service<<EOF
[Unit]
Description=Kubernetes Proxy
After=network.target
[Service]
EnvironmentFile=-/opt/kubernetes/cfg/kube-proxy
ExecStart=/opt/kubernetes/bin/kube-proxy \
\${KUBE_LOGTOSTDERR} \
\${KUBE_LOG_LEVEL} \
\${NODE_HOSTNAME} \
\${KUBE_MASTER}
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
 

启动服务

systemctl daemon-reload

systemctl enable kube-proxy

systemctl restart kube-proxy


其他节点加入集群与node01方式相同,但需修改kubelet的--address和--hostname-override选项为本机IP即可。

在master查看node命令


---------------------
作者:Richardlygo
来源:CSDN
原文:https://blog.csdn.net/Richardlygo/article/details/84632670
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自www.cnblogs.com/cnyw/p/10608983.html