K8s搭建過程


ETCD 192.168.31.143
Master 192.168.31.13
node   192.168.31.14

ETCD

yum install etcd -y  # 安裝etcd k/v數(shù)據(jù)庫
  • 配置
vim /etc/etcd/etcd.conf
ETCD_DATA_DIR="/data/etcd/default.etcd"  # 數(shù)據(jù)存儲位置
ETCD_LISTEN_CLIENT_URLS="http://localhost:2379,http://192.168.31.143:2379" # 監(jiān)聽地址
ETCD_NAME="etcd_1"  # 名稱
ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379,http://192.168.31.143:2397" #訪問地址
#ETCD_INITIAL_ADVERTISE_PEER_URLS="http://localhost:2380" # 集群
通信地址
  • 創(chuàng)建Fanneld網(wǎng)絡(luò)數(shù)據(jù)庫
#查看ETCD 集群列表;
etcdctl member list
#查看ETCD 集群狀態(tài);
etcdctl cluster-health
#獲取Config KEY 值;
etcdctl get /atomic.io/network/config
#查看Subnets KEY 列表;
etcdctl ls /atomic.io/network/subnets
#刪除Network KEY;
etcdctl rm /atomic.io/network/ --recursive
#創(chuàng)建config KEY,并且設(shè)置Values;
etcdctl mk /atomic.io/network/config '{"Network":"172.17.0.0/16"}'
  • 啟動
systemctl start etcd 
ss -ntlp # 查看驗(yàn)證端口監(jiān)聽

  • ETCD問題


    ETCD問題.png
# 權(quán)限
 cannot access data directory: mkdir /data/etcd/default.etcd: permission denied
etcd服務(wù)啟動默認(rèn)使用etcd.etcd 用戶啟動
chown -R etcd.etcd /xxx/xxx 

Flannel 網(wǎng)絡(luò)

image.png
  • 配置
vim /etc/sysconfig/flanneld
FLANNEL_ETCD_ENDPOINTS="http://192.168.31.143:2379" # etcd 數(shù)據(jù)庫地址
FLANNEL_ETCD_PREFIX="/atomic.io/network" # 存儲在etcd數(shù)據(jù)庫中的key
  • 啟動
systemctl start flanneld

K8s master

  • 安裝
yum install kubernetes-master  flannel -y
  • 配置
cd /etc/kubernetes/ 
[root@Docker kubernetes]# ls
apiserver  # api配置文件
config  # 配置文件
controller-manager  # 控制器配置  
scheduler  #調(diào)度配置文件

  • config 配置


    image.png
KUBE_LOGTOSTDERR="--logtostderr=true"  # 日志輸出
KUBE_LOG_LEVEL="--v=0" # 日志等級
KUBE_ALLOW_PRIV="--allow-privileged=true"  # 特權(quán)模式運(yùn)行容器
KUBE_MASTER="--master=http://192.168.31.13:8080"  #監(jiān)聽地址端口
  • apiserver配置文件


KUBE_API_ADDRESS="--insecure-bind-address=127.0.0.1" #監(jiān)聽地址
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.31.143:2379" # etcd數(shù)據(jù)庫地址
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"  # 地址池
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"  

  • 啟動服務(wù)
for I in  kube-apiserver kube-controller-manager kube-scheduler; do
systemctl start  $I
systemctl enable $I
systemctl status $I
done
image.png

node

  • 安裝
yum install kubernetes-node docker flannel *rhsm* -y
  • 配置
[root@Docker ~]# cd /etc/kubernetes/
[root@Docker kubernetes]# ls
config  # Node 節(jié)點(diǎn)主配置文件,指定設(shè)置日志、日志級別、啟用超級特權(quán)、連接Master API 接口服務(wù)
 kubelet  # 責(zé)接收Master 節(jié)點(diǎn)發(fā)送的指令,去調(diào)用底層Docker 組件,啟動、停止、刪除、卸載容器
 proxy #為代理文件,主要是用于局域網(wǎng)訪問(ServiceVIP 方式)容器,可以通過iptables 做NAT、FORWARD 數(shù)據(jù)轉(zhuǎn)發(fā)
  • config


    image.png
KUBE_LOGTOSTDERR="--logtostderr=true" # 日志
KUBE_LOG_LEVEL="--v=0" # 日志等級
KUBE_ALLOW_PRIV="--allow-privileged=true" # 特權(quán)模式
KUBE_MASTER="--master=http://192.168.31.13:8080" # master 連接

  • kubelet


    image.png
KUBELET_ADDRESS="--address=192.168.31.14" # node監(jiān)聽地址
KUBELET_HOSTNAME="--hostname-override=192.168.31.14" # hostname設(shè)置
KUBELET_API_SERVER="--api-servers=http://192.168.31.13:8080"  # master 連接
  • 啟動
for  I  in  kube-proxy  kubelet  docker
do
systemctl  restart  $I
systemctl  enable  $I
systemctl  status  $I
done
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容