k8s单master两工作节点搭建
k8s单master两工作节点搭建1.准备配置3台Centos(本次使用3台虚拟机) 至少2核CPU+2G内存+20G硬盘Master:192.168.140.128Worker1:192.168.140.129Worker2:192.168.140.130Kubernetes版本1.18.0 docker版本1.13.02.禁用防火墙 #开启路由转发,每台都需要systemctl stop fi
k8s单master两工作节点搭建
1.准备配置
3台Centos(本次使用3台虚拟机) 至少2核CPU+2G内存+20G硬盘
Master:192.168.140.128
Worker1:192.168.140.129
Worker2:192.168.140.130
Kubernetes版本1.18.0 docker版本1.13.0
2.禁用防火墙 #开启路由转发,每台都需要
systemctl stop firewalld & systemctl disable firewalld
echo “1” > /proc/sys/net/ipv4/ip_forward
3.禁用SELINUX
sed -i “s/SELINUX=enforcing/SELINUX=disabled/” /etc/selinux/config
setenforce 0
4.禁用swap
vi /etc/fstab 注释掉swap
5.重启服务器,使其生效。
reboot
6.添加k8s源,国内使用阿里或者163的
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
7.安装kubelet、kubeadm、kubectl
yum install -y kubectl kubeadm kubelet
8.设置开机启动kubelet
systemctl enable kubelet
9.安装docker并开机自启动
yum install -y docker
systemctl start docker & systemctl enable docker
10.修改hostname(非常重要,如果hostname相同会导致问题,工作节点操作到此跳到17步)
hostnamectl set-hostname XXXX
11.初始化Master节点 重置节点为kubeadm reset
kubeadm init
–apiserver-advertise-address=192.168.140.128
–image-repository registry.aliyuncs.com/google_containers
–kubernetes-version v1.18.0
–service-cidr=10.1.0.0/16
–pod-network-cidr=10.244.0.0/16
12.执行命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown
(
i
d
−
u
)
:
(id -u):
(id−u):(id -g) $HOME/.kube/config
13.加入集群命令
kubeadm join 192.168.140.128:6443 --token ljev6c.tyh3ll3a17ws6145
–discovery-token-ca-cert-hash sha256:c824b16232c80a13cb4737943f80b4c0d497afef736de6a05e6662bf3608caa9
14.检查组件节点信息
kubectl get nodes
kubectl get cs
kubectl get pod --all-namespaces
15.安装flannel网络插件,安装完成后coredns状态变为run
kubectl create -f https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml
16.安装kubernetes-dashboard面板插件 https://github.com/kubernetes/dashboard
1.docker search kubernetes-dashboard 找个不用翻墙能拉取的镜像
2.去这个地址获取yaml文件 根据自己需要修改修改http://mirror.faasx.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
3.nodeport方式 访问 https://ip:port
4.服务器获取登录token
方式1.
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep yuwenkai | awk ‘{print $1}’)
方式2.
kubectl get secret -n kubernetes-dashboard |grep yuwenkai
输出结果:yuwenkai-token-xxgbk kubernetes.io/service-account-token 3 76m
kubectl get secret yuwenkai-token-xxgbk -o jsonpath={.data.token} -n kubernetes-dashboard |base64 -d
5.配置权限
参考官方文档
kubectl get clusterrolebinding 查看存在的集群角色
kubectl delete clusterrolebinding xxx 删除
6.安装metrics-server
1.允许master节点部署pod
kubectl taint nodes --all node-role.kubernetes.io/master-
如果不允许调度
kubectl taint nodes master1 node-role.kubernetes.io/master=:NoSchedule
污点可选参数
NoSchedule: 一定不能被调度
PreferNoSchedule: 尽量不要调度
NoExecute: 不仅不会调度, 还会驱逐Node上已有的Pod
2.添加2参数
args:
- ‘–kubelet-preferred-address-types=InternalIP’
- ‘–kubelet-insecure-tls’
17.安装工作节点
0.按照上面步骤到第10设置系统
1.执行命令 kubeadm join 192.168.140.128:6443 --token xuktzd.6le7uw58r2dqp2s9
–discovery-token-ca-cert-hash sha256:c824b16232c80a13cb4737943f80b4c0d497afef736de6a05e6662bf3608caa9
2.查询token
kubeadm token list
3.24小时过期生成token命令
kubeadm token create
4.获取证书hash值
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed ‘s/^.* //’
5.如果出现删除node节点重新加入报错的情况 删除提示的文件夹,关闭端口
再次出现[kubelet-check] Initial timeout of 40s passed超时错误执行以下操作
kubeadm reset
systemctl daemon-reload
systemctl restart kubelet
18.简单测试
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
19.至此完成的系统搭建功能
1.单master2node工作节点结构
2.外部能访问的操作界面 有登录验证 有用户权限设置 集成了metrics-server能看到资源使用图
3.简单示例外部能访问的nginx服务
20.后续展望
其他微服务组件的添加
更多推荐
所有评论(0)