案例環境:

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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
