k8s单Master集群部署

    科技2024-02-23  101

    环境准备:

    | 角色     |      IP             | | --------- | ------------------| | master | 192.168.1.11 | | node1  | 192.168.1.12 | | node2  | 192.168.1.13 |

    1.关闭防火墙 systemctl stop firewalld systemctl disable firewalld

    2.关闭selinux sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久 setenforce 0  # 临时

    3.关闭swap swapoff -a  # 临时 sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永久


    4.根据规划设置主机名 hostnamectl set-hostname <hostname>

    5.在master添加hosts cat >> /etc/hosts << EOF 192.168.44.146 k8smaster 192.168.44.145 k8snode1 192.168.44.144 k8snode2 EOF


    6.将桥接的IPv4流量传递到iptables的链 cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system  # 生效

    7.时间同步

    Cent7及以前版本: yum install ntpdate -y

    ntpdate time.windows.com

    CentOS8版本:

    或许会涉及到修改时区,如果安装时一路默认,可能会遇到此问题

    检查现在的时区:timedatectl修改时区为上海:timedatectl set-timezone Asia/Shanghai列出所有时区:timedatectl list-timezones

    同步时间步骤:

    1.yum install -y chrony

    2.systemctl start chrony

    3.systemctl enable chrony

    4.vim /etc/chrony.conf

    5.把第一行配置注释掉,在它之下追加

    server ntp.aliyun.com iburst server cn.ntp.org.cn iburst

    6.systemctl restart chronyd.service

    7.chronyc sources -v    #手动刷新时间

    8.date命令,查看当前时间与node节点时间是否保持一致,时间不统一会出问题:

    执行命令:kubectl get nodes

    报Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")错误

    解决办法就是更新系统时间或调整系统时区与本地当前时区一致。


    1.安装docker

    https://blog.csdn.net/zhao123sun/article/details/108894893

    2.添加阿里云YUM软件源

    $ 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=0 repo_gpgcheck=0 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF

    3 安装kubeadm,kubelet和kubectl

    $ yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0 $ systemctl enable kubelet

    4. 部署Kubernetes Master(此项仅在master节点执行)

    $ kubeadm init \   --apiserver-advertise-address=192.168.44.146 \   --image-repository registry.aliyuncs.com/google_containers \   --kubernetes-version v1.18.0 \   --service-cidr=10.96.0.0/12 \   --pod-network-cidr=10.244.0.0/16

    (ps:此处IP地址配master节点IP地址)

    启动没问题(包括处理所有警告,没有Error)

    执行:Your Kubernetes control-plane has initialized successfully!

    这句话的这段命令:

      mkdir -p $HOME/.kube   sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config   sudo chown $(id -u):$(id -g) $HOME/.kube/config

    ps:仅在master节点执行

    至此如无意外,master节点部署完毕

    使用kubectl get nodes命令查看节点状态,因为当前只配置好了master,所以也只能看到master

    然后再在node节点上执行,连接master代码:

    kubeadm join 192.168.1.4:6443 --token xemjzd.dg21vgwmdglr6oyf \     --discovery-token-ca-cert-hash sha256:8fad114b44892c675ff61ce0ae37a852f61df72ba33f2a9c4e2bcc27f03a8c32

    标红段为加密秘钥,每次生产均不同,要拷贝你自己的执行结果。

     

    以上都执行完,最后需要执行一个配置文件。

    可以下载,也可以线上执行。首先确认是否能访问到,如不能,可选择下载到本地进行应用。

    kubectl apply -f kube-flannel.yaml

    kubectl apply -f https://github.com/lison-lion/ElasticsearchStudy/blob/master/kube-flannel.yaml

    至此,全部安装过程结束

    以下是测试效果:

    kubectl create deployment nginx --image=nginx kubectl expose deployment nginx --port=80 --type=NodePort

    部署完成,访问nginx地址,如果配置没问题,就会久违的Welcome NGINX了!

     

    常用查询命令:

    kubectl get nodes     查看节点状态

    例:

    NAME     STATUS     ROLES    AGE   VERSION master   NotReady   master   49s   v1.18.0

    kubectl get pods -n kube-system     查看k8s模块部署状态

    例:

    NAME                                    READY   STATUS    RESTARTS   AGE coredns-7ff77c879f-6rpcx         0/1      Pending   0          4m42s coredns-7ff77c879f-x56hn         0/1     Pending   0          4m42s etcd-master                               1/1      Running   0          4m46s kube-apiserver-master              1/1      Running   0          4m46s kube-controller-manager-master   1/1     Running   0          4m46s kube-proxy-ftgs4                        1/1     Running   0          2m58s kube-proxy-mqh5j                      1/1     Running   0          83s kube-proxy-qzxqk                       1/1     Running   0          4m42s kube-scheduler-master               1/1     Running   0          4m46s

    kubectl get pod,svc

    本文多处来视频笔记,少数来自自己部署总结。

    感谢B站,B站是个好东西,想学习的小伙伴一定要利用好!

    Processed: 0.016, SQL: 8