搭建简单的无权限k8s
参考连接:https://github.com/liuyi01/kubernetes-starter/tree/master/1.环境准备至少准备一台服务器操作系统 CentOS 7.6 (1810)内存 2G 【至少】CPU 2核【至少】硬盘 20G 【至少】安装docker(所有节点)接受所有ip的数据包转发vi /lib/systemd/system/...
参考连接:https://github.com/liuyi01/kubernetes-starter/tree/master/
1.环境准备
-
至少准备一台服务器
- 操作系统 CentOS 7.6 (1810)
- 内存 2G 【至少】
- CPU 2核【至少】
- 硬盘 20G 【至少】
-
安装docker(所有节点)
-
接受所有ip的数据包转发
vi /lib/systemd/system/docker.service
找到ExecStart=xxx,在这行上面加入一行,内容如下:(k8s的网络需要)
ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT
- 重启docker服务
systemctl daemon-reload
service docker restart
- 关闭、禁用防火墙
systemctl stop firewalld.service
- 设置系统参数 - 允许路由转发,不对bridge的数据进行处理
#写入配置文件
$ cat << EOF > /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
#生效配置文件
$ sysctl -p /etc/sysctl.d/k8s.conf
- 准备二进制文件(所有节点)
下载地址(kubernetes 1.9.0版本)
下载后将压缩文件放到home目录下解压文件
tar -xvf kubernetes-bins.tar.gz
添加环境变量
export PATH=$PATH:home/kubernetes-bins
- 准备配置文件(所有节点)
- 下载配置文件
#clone已准备好的配置到本地
$ cd /usr/local/
$ git clone https://github.com/liuyi01/kubernetes-starter.git
#看看git内容
$ cd /usr/local/kubernetes-starter && ls
- 修改配置
cd到之前下载的git代码目录
cd /usr/local/kubernetes-starter
$ vi config.properties
config.properties配置:
#kubernetes二进制文件目录,eg: kubernetes-bins
BIN_PATH=/home/kubernetes-bins
#当前节点ip, eg: 192.168.1.248
NODE_IP=192.168.1.248
#etcd服务集群列表, eg: http://192.168.1.248:2379
#如果已有etcd集群可以填写现有的。没有的话填写:http://${MASTER_IP}:2379 (MASTER_IP自行替换成自己的主节点ip)
##如果用了证书,就要填写https://${MASTER_IP}:2379 (MASTER_IP自行替换成自己的主节点ip)
ETCD_ENDPOINTS=http://192.168.1.248:2379
#kubernetes主节点ip地址, eg: 192.168.1.248
MASTER_IP=192.168.1.248
- 生成配置
#生成配置文件,确保执行过程没有异常信息
$ ./gen-config.sh simple
#查看生成的配置文件,确保脚本执行成功
$ find target/ -type f
target/all-node/kube-calico.service
target/master-node/kube-controller-manager.service
target/master-node/kube-apiserver.service
target/master-node/etcd.service
target/master-node/kube-scheduler.service
target/worker-node/kube-proxy.kubeconfig
target/worker-node/kubelet.service
target/worker-node/10-calico.conf
target/worker-node/kubelet.kubeconfig
target/worker-node/kube-proxy.service
target/services/kube-dns.yaml
2.基础集群部署
参考连接:https://github.com/liuyi01/kubernetes-starter/blob/master/docs/2-kubernetes-simple.md
- 部署ETCD(主节点)
#把服务配置文件copy到系统服务目录
$ cp target/master-node/etcd.service /lib/systemd/system/
#enable服务
$ systemctl enable etcd.service
#创建工作目录(保存数据的地方)
$ mkdir -p /var/lib/etcd
#启动服务
$ service etcd start
#查看服务日志,看是否有错误信息,确保服务正常
$ journalctl -f -u etcd.service
启动如果报错
Failed at step EXEC spawning /home/kubernetes/bin/etcd: Permission deni…
检查环境变量/home/kubernetes-bins是否存在
- 部署APIServer(主节点)
$ cp target/master-node/kube-apiserver.service /lib/systemd/system/
$ systemctl enable kube-apiserver.service
$ service kube-apiserver start
$ journalctl -f -u kube-apiserver
- 部署ControllerManager(主节点)
$ cp target/master-node/kube-controller-manager.service /lib/systemd/system/
$ systemctl enable kube-controller-manager.service
$ service kube-controller-manager start
$ journalctl -f -u kube-controller-manager
- 部署Scheduler(主节点)
$ cp target/master-node/kube-scheduler.service /lib/systemd/system/
$ systemctl enable kube-scheduler.service
$ service kube-scheduler start
$ journalctl -f -u kube-scheduler
- 部署CalicoNode(所有节点)
$ cp target/all-node/kube-calico.service /lib/systemd/system/
$ systemctl enable kube-calico.service
$ service kube-calico start
$ journalctl -f -u kube-calico
查看容器运行请假
docker ps
CONTAINER ID IMAGE COMMAND CREATED …
4d371b58928b calico/node:v2.6.2 “start_runit” 3 hours ago…
查看节点运行情况
calicoctl node status
查看端口BGP 协议是通过TCP 连接来建立邻居的,因此可以用netstat 命令验证 BGP Peer
$ netstat -natp|grep ESTABLISHED|grep 179
查看集群ippool情况
apiVersion: v1
kind: ipPool
metadata:
cidr: 172.20.0.0/16
spec:
nat-outgoing: true
- 配置kubectl命令(任意节点)
#指定apiserver地址(ip替换为你自己的api-server地址)
kubectl config set-cluster kubernetes --server=http://192.168.1.102:8080
#指定设置上下文,指定cluster
kubectl config set-context kubernetes --cluster=kubernetes
#选择默认的上下文
kubectl config use-context kubernetes
- 配置kubelet(工作节点)
#确保相关目录存在
$ mkdir -p /var/lib/kubelet
$ mkdir -p /etc/kubernetes
$ mkdir -p /etc/cni/net.d
#复制kubelet服务配置文件
$ cp target/worker-node/kubelet.service /lib/systemd/system/
#复制kubelet依赖的配置文件
$ cp target/worker-node/kubelet.kubeconfig /etc/kubernetes/
#复制kubelet用到的cni插件配置文件
$ cp target/worker-node/10-calico.conf /etc/cni/net.d/
$ systemctl enable kubelet.service
$ service kubelet start
$ journalctl -f -u kubelet
- 为集群增加service功能 - kube-proxy(工作节点)
#确保工作目录存在
$ mkdir -p /var/lib/kube-proxy
#复制kube-proxy服务配置文件
$ cp target/worker-node/kube-proxy.service /lib/systemd/system/
#复制kube-proxy依赖的配置文件
$ cp target/worker-node/kube-proxy.kubeconfig /etc/kubernetes/
$ systemctl enable kube-proxy.service
$ service kube-proxy start
$ journalctl -f -u kube-proxy
结束
更多推荐
所有评论(0)