centos7-部署k8s-shell脚本方式部署
1、每个节点设置
设置网络
vi /etc/sysconfig/network-scripts/ifcfg-ens33
ONBOOT=yes
设置静态IP(虚拟机不用)
vi /etc/sysconfig/network-scripts/ifcfg-ens33
将 BOOTPROTO 改为static
BOOTPROTO=static
ONBOOT=yes
添加ip、网关和DNS地址,网关可以通过命令:“netstat -rn” 查看
IPADDR=192.168.1.11
GATEWAY=192.168.1.2
DNS1=8.8.8.8
2、时间同步
k8s要求集群中的节点必须精确一致,所以直接使用chronyd从网络同步时间
启动chronyd服务
systemctl start chronyd
设为开机自启
systemctl enable chronyd
查看当前时间
date
3、重新设置主机名
在k8s中, 主机名不能重复,所以将其设为不一样的节点
主节点
hostnamectl set-hostname master
工作节点1
hostnamectl set-hostname node1
工作节点2
hostnamectl set-hostname node2
4、拷贝k8stest 文件夹到服务器
运行k8s.sh
进入文件夹
cd /k8stest/
运行
chmod +x ./k8s.sh && ./k8s.sh
初始化主节点如果报错
重置
kubeadm reset
清除文件
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
systemctl stop kubelet
systemctl stop docker
rm -rf /var/lib/cni/*
rm -rf /var/lib/kubelet/*
rm -rf /etc/cni/*
ifconfig cni0 down
ifconfig flannel.1 down
ifconfig docker0 down
ip link delete cni0
ip link delete flannel.1
systemctl start docker
然后再初始化
使用init组件快速初始化一个主节点(10.0.2.15为服务器IP)
kubeadm init \
--apiserver-advertise-address=10.0.2.15 \
--control-plane-endpoint=cluster-endpoint \
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \
--kubernetes-version v1.20.9 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=192.168.0.0/16
初始化后续
根据上面的提示继续进行配置,如果需要使用集群,还需要执行以下命令,
记住,这里的命令是从第一步初始化成功后拷贝过来的命令,应该拷贝你的命令来执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
3、work节点加入集群(安装令牌,只在工作节点执行)
如果要在集群中加入工作节点,那么需要在工作节点执行以下命令,这些是集群的令牌
记住,这里的命令是从第一步初始化成功后拷贝过来的命令,应该拷贝你的命令来执行
以下操作只在work节点执行即可
kubeadm join cluster-endpoint:6443 --token ppwpeo.286k19gvjdlelen8 \
--discovery-token-ca-cert-hash sha256:1e402bf817b1f8f2ade7aeb0a702c389903a96e72724517409793e7b4904ee72
加入后我们在主节点执行kubectl get nodes命令,可以看到,除了主节点之外,还有2个工作节点,在看它们的状态都是NotReady(未准备好)的,因为还没安装网络插件,这刚好是我们下一步要做的事;
查看nodes
kubectl get nodes
这个命令一定要在主节点执行才能生成令牌
kubeadm token create --print-join-command
5、可视化
加载可视化
cd /k8stest
kubectl apply -f k8s-dashboard.yaml
//创建一个dashboard的管理用户
kubectl create serviceaccount dashboard-admin -n kube-system
//将创建的dashboard用户绑定为管理用户
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
//获取刚刚创建的用户对应的token名称
kubectl get secrets -n kube-system | grep dashboard
dashboard-admin-token-h7w7r kubernetes.io/service-account-token 3 12s
//查看token的详细信息
kubectl describe secrets -n kube-system dashboard-admin-token-ntbtb
6、查看kubetl 日志
journalctl -u kubelet --no-pager
7、单节点部署需要去除污点
kubectl describe nodes master |grep Taints
kubectl taint node master node-role.kubernetes.io/master-
8、登录docker仓库(需要生成)
docker login -u "账号" -p "密码" swr.cn-south-1.myhucloud.com(地址)
9、生成kubectl 密钥
kubectl create secret docker-registry regsecret --docker-server=swr.cn-south-1.myweicloud.com --docker-username="username" password="password"
删除密钥
kubectl delete -n default secret regsecret
10、项目全部启动
cd /k8stest/deploy
kubectl apply -f .
全部删除
kubectl delete -f .
redis 加载字符
redis-cli
set 'key' 'value'
get 'key'
列出所有的key
keys *