网站首页 > 技术文章 正文
【k8s安装】centos7 二进制方式安装 指定IP段
一:基础环境配置
配置固定IP
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
#BOOTPROTO=dhcp
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
#UUID=3d99fe82-66d8-4a45-be60-171c380f3425
DEVICE=ens33
ONBOOT=yes
#IPADDR0=192.168.137.150
IPADDR0=10.0.0.3
PREFIXO0=8
GATEWAY0=10.0.0.2
DNS1=10.0.0.2
主机信息
10.0.0.3 k8s1
10.0.0.4 k8s2
10.0.0.5 k8s3
基础配置
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
#sysconf
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
EOF
sysctl --system
二:etcd配置
Etcd需要在3台主机上都安装
修改网卡标识
sed -i "s/ens192/ens33/g" install_etcd.sh
1、注意编辑install_etcd.sh脚本中ifconfig获取本机ip地址的命令,按照实际情况进行修改以正确过滤获得主机IP。
/root/k8s_v1.10.0_install/etcd/install_etcd.sh
ETCD_LISTEN_IP=`ifconfig ens33 | grep 'inet ' | awk '{ print $2}'`
2、在3台主机上分别执行如下命令(同时执行避免等待选举)
/root/k8s_v1.10.0_install/etcd
./install_etcd.sh etcd01 etcd01=http://10.0.0.3:2380,etcd02=http://10.0.0.4:2380,etcd03=http://10.0.0.5:2380
./install_etcd.sh etcd02 etcd01=http://10.0.0.3:2380,etcd02=http://10.0.0.4:2380,etcd03=http://10.0.0.5:2380
./install_etcd.sh etcd03 etcd01=http://10.0.0.3:2380,etcd02=http://10.0.0.4:2380,etcd03=http://10.0.0.5:2380
注意:执行上述命令时,不能等一台完全执行成功了再去下一台执行,因为etcd启动后会进行选举leader投票,如果各etcd启动间隔过大,会导致etcd集群启动失败
#配置环境变量
export PATH=$PATH:/usr/local/kubernetes/bin
确认
[root@k8s1 etcd]# etcdctl member list
1a5336f8e6f41dc6: name=etcd03 peerURLs=http://10.0.0.5:2380 clientURLs=http://10.0.0.5:2379 isLeader=false
98184e85afc2ec7a: name=etcd01 peerURLs=http://10.0.0.3:2380 clientURLs=http://10.0.0.3:2379 isLeader=true
b91cb809d7dea3b3: name=etcd02 peerURLs=http://10.0.0.4:2380 clientURLs=http://10.0.0.4:2379 isLeader=false
三:安装Flannel
修改网卡标识
sed -i "s/ens192/ens33/g" install_flannel.sh
Flannel需要在所有主机上安装
1、编辑install_flannel.sh脚本设置正确的网卡接口及etcd键值
/root/k8s_v1.10.0_install/flannel/install_flannel.sh
IFACE="ens33"
#FLANNEL_NET='{"Network":"172.18.0.0/16", "SubnetMin": "172.18.1.0", "SubnetMax": "172.18.254.0", "Backend": {"Type": "vxlan"}}'
FLANNEL_NET='{"Network":"10.0.0.0/8", "SubnetMin": "10.1.0.0", "SubnetMax": "10.3.0.0", "Backend": {"Type": "vxlan"}}'
2、在3台主机上分别执行下面命令
./install_flannel.sh http://10.0.0.3:2379,http://10.0.0.4:2379,http://10.0.0.5:2379
确认
# ifconfig flannel.1
Docker需要在所有主机上安装
此次docker部署采用二进制安装方式进行。
1、编辑 install-docker.sh
在二进制安装脚本中添加flannel参数
执行安装脚本
./install-docker.sh docker-18.03.0-ce.tgz
确认
# docker version
三:部署Kubernetes
1、部署Master节点
在10.0.0.3主机上执行下面命令
/root/k8s_v1.10.0_install/kubernetes/master
./install_k8s_master.sh 10.0.0.3 http://10.0.0.3:2379,http://10.0.0.4:2379,http://10.0.0.5:2379
部署Minion节点
在节点主机上执行下面命令
/root/k8s_v1.10.0_install/kubernetes/node
./install_k8s_node.sh 10.0.0.3
#配置环境变量
export PATH=$PATH:/usr/local/kubernetes/bin
确认
kubectl get cs
kubectl get nodes
各个节点上
导出镜像:
#!/bin/bash
docker images |awk '{print $1,$2,$3}'|grep -v REPOSITORY >images.txt
#sed -i 's/\//\-/g' images.txt
#sed -i '1d' images.txt
while read line
do
echo $line
ImageName=`echo "$line"|awk '{print $1}'`
TarImageName=`echo "$line"|awk '{print $1}'|sed 's/\//\-/g'`
ImageVer=`echo "$line"|awk '{print $2}'`
ImageId=`echo "$line"|awk '{print $3}'`
TarName="${TarImageName}#${ImageVer}"
#echo $ImageName
#echo $ImageVer
#echo $ImageId
#echo $TarName
#echo $TarImageName
#save images
#docker save -o ${TarName} ${TarImageName} | bzip2 -9 -c > ${TarName}.tar.bz2
docker save -o ${TarName}.tar ${ImageName}:${ImageVer}
#bzip2 press
bzip2 -9 ${TarName}.tar
#exit
done
删除所有镜像
docker rmi `docker images|awk '{print $3}'|sed 's/IMAGE//g'|xargs`
#高压率
bzip2 -9 `ls *.tar|xargs`
导入镜像
#!/bin/bash
for i in `ls *.tar.bz2`;do echo $i;bzip2 -d -c < $i | docker load < $i;done
#启动本地仓库
docker run -d -p 5000:5000 --restart=always --name="docker-image" --hostname="docker-image" -v /opt/docker-images:/registry -e REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/registry registry
本机存储目录:
/opt/docker-images
#把busybox转存到本地仓库
1.查看镜像
docker images
2.打上标签
docker tag 8ac48589692a k8s1:5000/busybox:v1
3.推送标签
docker push k8s1:5000/busybox:v1
4.查看仓库镜像列表
curl -XGET http://10.0.0.3:5000/v2/_catalog
部署busybox
busybox-rc.yaml busybox.yaml
修改镜像地址
image: k8s1:5000/busybox:v1
并去掉策略
imagePullPolicy: Never
5.kube-dns和DashBoard服务
部署kube-dns服务
Kube-dns作为集群内部的域名解析服务,没有它就只能使用ip地址来相互访问。
注意修改kube-dns.yaml中的clusterIP地址和kube-master-url地址。
cd /root/k8s_v1.10.0_install/kubernetes/addons/kube-dns
执行命令:kubectl create -f kube-dns.yaml,部署启动kube-dns服务
部署DashBoard服务
注意修改kubernetes-dashboard.yaml中的API server地址和开放的Node port。
cd /root/k8s_v1.10.0_install/kubernetes/addons/kube-dns
执行命令:kubectl create -f kubernetes-dashboard.yaml,部署启动dashboard服务。
使用get pods命令找出pod运行的node,使用http://{NodeIP}:30090访问即可。
注意:镜像也要手工load到本地
kubectl get pods -o wide --namespace kube-system
访问控制台
http://{NodeIP}:30090
http://192.168.10.6:30090
猜你喜欢
- 2024-09-30 「技术干货」k8s学习-calico的默认配置
- 2024-09-30 Prometheus Operator 初体验 prometheus详解
- 2024-09-30 Java基础教程:k8s快速入门 java基础入门第二版黑马程序员内容
- 2024-09-30 k8s dashboard 集成heapster pod资源监控界面
- 2024-09-30 k8s暴露集群内和集群外服务的方法
- 2024-09-30 K8S最全详解(图文全面总结) k8s go
- 2024-09-30 用户数从 0 到亿,我的 K8s 踩坑血泪史
- 2024-09-30 使用operator部署Prometheus prometheus api调用
- 2024-09-30 K8s服务编排 k8s service selector
- 2024-09-30 k8s基础概念及术语 k8s重要概念
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)