Centos7服务器安装k8s
[toc]
防火墙状态与关闭
1 | [root@localhost ~]# systemctl status firewalld.service |
SELinux永久关闭or禁用
1 | [root@localhost ~]# sudo nano /etc/selinux/config |
把里面内容改为:
1 | SELINUX=disabled |
或者使用下面禁用方法
1 | [root@localhost ~]# sudo setenforce 0 |
swap禁用
先把swap禁用
1 | [root@localhost ~]# free -h |
永久禁止swap启用
下面sed那个语句就是注释含有swap的配置行
1 | [root@localhost ~]# sed -ri 's/.*swap.*/#&/' /etc/fstab |
换源
更换软件源
1 | [root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo |
然后更新
1 | [root@localhost ~]# yum update -y && yum upgrade -y |
更换docker软件源
1 | [root@localhost ~]# sudo yum install -y yum-utils |
安装指定docker
1 | yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6 |
docker配置
服务设置
设置重启docker和开机自启docker
1 | [root@localhost ~]# systemctl restart docker.service |
阿里云docker镜像源配置设置
1 | [root@localhost ~]# sudo mkdir -p /etc/docker |
安装k8s
添加k8s软件源
1 | [root@localhost ~]# cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo |
k8s服务安装和设置
1 | [root@localhost ~]# sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes |
克隆
master
1 | [root@localhost ~]# hostnamectl set-hostname master |
1 | echo "192.168.15.128 master" >> /etc/hosts |
nodex
1 | [root@localhost ~]# hostnamectl set-hostname node1 |
。。。
1 | echo "192.168.15.128 master" >> /etc/hosts |
。。。
主节点初始化
master
1 | #主节点初始化 |
得到
1 | mkdir -p $HOME/.kube |
但是先执行,剩下那个是给node节点的
1 | mkdir -p $HOME/.kube |
下载网络组件
1 | [root@master ~]# curl https://docs.projectcalico.org/v3.20/manifests/calico.yaml -O |
应用网络组件
1 | [root@master ~]# kubectl apply -f calico.yaml |
查看集群部署了哪些应用
1 | #查看集群部署了哪些应用? |
node
子节点加入master
1 | kubeadm join master:6443 --token x80x7w.zdjqhivr1jopdk2i \ |
验证集群
1 | [root@master ~]# kubectl get nodes |
K8S命令
生成新的令牌: 使用 kubeadm token create
命令生成一个新的加入令牌:
1 | kubeadm token create --print-join-command |
检查和管理现有令牌
查看现有令牌: 你可以使用以下命令查看当前有效的令牌:
1
kubeadm token list
删除过期令牌: 如果有需要,可以删除过期或不再使用的令牌:
1
kubeadm token delete <token-id>
部署dashboard
1 | kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml |
可以通过下面命令查看dashboard启动情况
1 | [root@master ~]# kubectl get pod -A |
知道NAMESPACE
之后,设置访问端口
1 | kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard |
type: ClusterIP 改为 type: NodePort
查找访问端口
1 | [root@master ~]# kubectl get svc -A |grep kubernetes-dashboard |
不安全问题
无论是在谷歌浏览器还是edge浏览器都会出现这个,而且没得点进去好吧!这个时候可以在键盘输入thisisunsafe
这个命令,页面自动给你跳转进去,非常神奇。
输入那个命令就跳转这个了
创建访问账号
1 | #创建访问账号,准备一个yaml文件; nano dash-user.yaml |
执行命令
1 | kubectl apply -f dash-user.yaml |
令牌访问
1 | #获取访问令牌 |
1 | eyJhbGciOiJSUzI1NiIsImtpZCI6IjRoa3k4djFzNUp4eENjN0Y0aXBybHNNaTFQd3hVM09HWGhLU24ycE9DMkkifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLTl4c3ZnIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJhODI0YmQxYS1jNjc4LTQzYmUtODhkOC0wYTkxNDhjZjhmYTgiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.EaVJeEKLHTr_Oh05GkUTzuwYKdOQfa8slgz-RzRZfE9ow8wmU7JbWNOR5YMT9bhb_sYi5LTjtvcgPqM6szCOGzW1mc0sPurRorkCaxgLW-K61PPGfPmB54HJvBCG-Cp65vAM4AyKCEPVj-cNMgncpyxe9yuik4z69mwt632Idb1Lcdhf5Vut_1LmGQMc1osRqAF4jVcFy-uPRv4CE2RBR1PL_GXEDHsS4KQjttVyUWwf2lqJ0ZefWvjMUCVazXeQI16QHLRTiXBdpg_iOwk8lXsHvV_I4ZdhClZr8FxTa9Cg5-njG9iGvgmZ2mkvZnM2c_dzlh5y98cAKRaRR0HbaA |
把得到的令牌粘贴到token里面
命令
1 | # 随机一个机子拉取nginx |
test
nginx.yaml
1 | apiVersion: v1 |
myapp.yaml
1 | apiVersion: v1 |
raspberry当dhcp服务器共享以太网
这里我的raspberry外接了一个网卡eth1,这个eth1直接连接路由器获取互联网络,raspberry自己有一个eth0这个网卡用来接电脑,它(eth0)将运行dhcp服务下发ip给电脑,这样我们的电脑就能拥有网络。你会问我为啥要脱裤子放屁,因为这个eth1网卡可以是通过手机usb共享出来的网络(eth1可以当成手机usb共享的网卡,到时不叫这个名字,这里为了好记忆还是这么叫),我设计这个的目的就是让手机共享网络给树莓派,然后通过树莓派的lan口(eth0)下发局域网给路由器的wan口,路由器会自己再生成一个局域网下发lan口和wifi,设备连wifi和连路由器的lan都在一个局域网内。
换源
- 清华源bookworm
1 | cat >/etc/apt/sources.list<<EOF |
更新系统
1 | apt update -y && apt upgrade -y |
eth0处于up状态
这地方很重要!先让网卡起来,然后拥有一个网段的ip(因为我的eth0在192.168.1.0/24这个网段,所以我可以设置除这个网段外的192.168.10.0/24),这个ip将充当网关中转流量也是DHCP服务器。
1 | sudo ip link set eth0 up |
dhcp服务器安装和设置
1 | apt-get install -y isc-dhcp-server |
编辑/etc/default/isc-dhcp-server
,在里面改INTERFACESv4=“eth0”
就行了
1 | vim /etc/default/isc-dhcp-server |
修改dhcpd.conf
1 | vim /etc/dhcp/dhcpd.conf |
看我的配置!这里设计了树莓派的lan口下发的ip范围,但你懂得,树莓派就一个lan口,还是自带的,所以只有一个ip就是192.168.10.1
,下发的ip是给路由器或者电脑一个设备端使用,这里我就把范围调大了,可以按照自己喜欢调小
1 | subnet 192.168.10.0 netmask 255.255.255.0 { |
设置ipv4流量中转
1 | sudo vim /etc/sysctl.conf |
1 | # 添加net.ipv4.ip_forward=1 |
配置载入
1 | sudo sysctl -p |
防火墙流量放行
1 | sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE # 注意!这个网卡是连接以太网的网卡,不是连接你电脑那个网卡!!!这个网卡是连接外部互联网的网卡,这么理解会不会好点呢! |
如果没iptables
需要安装
1 | sudo apt-get install -y iptables iptables-persistent |
保存iptables
配置
1 | sudo netfilter-persistent save |
dhcp服务!启动!
1 | sudo systemctl restart isc-dhcp-server |
使用过程报错
如果使用过程中是手机usb共享网络的记得要重新获取一下设备ip,我的是
华为nova7
就是要这样弄的,不然没有网络如果用的是以太网自动下发的ip地址,就不会出现上述问题