首页 > 其他分享 >k8s

k8s

时间:2023-02-27 09:34:00浏览次数:34  
标签:haproxy harbor com 192.168 docker k8s root

部署K8S流程:
1、基础环境准备,并关闭防火墙 selinux 和 swap,更新软件源、时间同步、安装常用命、开启路由转发。
2、部署 harbor 及 haproxy keeplivad高可用反向代理
3、在所有 master 安装指定版本的 kubeadm 、kubelet、kubectl、docker
4、在所有 node 节点安装指定版本的 kubeadm 、kubelet、docker,在 node 节点 kubectl 为可选安装,看是否需要在 node 执行 kubectl 命令进行集群管理及 pod 管理等操作。 
5、master 节点运行 kubeadm init 初始化命令
6、验证 master 节点状态
7、在 node 节点使用 kubeadm 命令将自己加入 k8s master(需要使用 master 生成 token 认 证) 
8、验证 node 节点状态
9、创建 pod 并测试网络通信
10、部署 web 服务 Dashboard
11、k8s 集群升级



192.168.80.100   localhost7A.localdomain      harbor        CentOS 7.7
192.168.80.110   localhost7B.localdomain     keepalived haproxy     192.168.80.222    CentOS 7.7
192.168.80.120   localhost7C.localdomain     master    192.168.80.222    CentOS 7.7
192.168.80.130   localhost7D.localdomain       master    192.168.80.222    CentOS 7.7
192.168.80.140   localhost7E.localdomain     master    192.168.80.222    CentOS 7.7
192.168.80.150   localhost7F.localdomain     node1        CentOS 7.7
192.168.80.160   localhost7G.localdomain     node2        CentOS 7.7
192.168.80.170   localhost7H.localdomain     node3        CentOS 7.7

一、部署 harbor 

1.同步时间服务 并关闭防火墙和selinux 开启路由转发
[root@localhost7A ~]# ntpdate   time1.aliyun.com && hwclock  -w
[root@localhost7A ~]# echo 1 > /proc/sys/net/ipv4/ip_forward  


2.下载YUM源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo



3.安装docker  docker-compose
yum list docker-ce --showduplicates
yum install docker-ce-19.03.15-3.el7  docker-ce-cli-19.03.15-3.el7  -y
yum install docker-compose  -y
systemctl enable docker && systemctl start docker

4.下载harbor 解压
https://github.com/goharbor/harbor/releases/download/v1.7.6/harbor-offline-installer-v1.7.6
tar xvf harbor-offline-installer-v1.7.6.tgz 
ln -sv /usr/local/src/harbor   /usr/local/
cd /usr/local/harbor/

5.设置harbor配置文件,启动。
[root@localhost7A ~]# grep "^[a-Z]" /usr/local/harbor/harbor.cfg 
hostname = harbor.zzhz.com
ui_url_protocol = http
harbor_admin_password = Harbor12345

5.启动 
./install.sh 
 

6.docker 命令登录测试
设置要登录harbor服务器的各节点.master和node节点要下载镜像。
默认下harbor是采用的https登录,如果使用http登录.使用此参数:非安全登录方式,--insecure-registry harbor.zzhz.com

[root@localhost7C ~] cat /usr/lib/systemd/system/docker.service
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry harbor.zzhz.com
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

[root@localhost7C ~]# systemctl daemon-reload &&  systemctl restart docker
[root@localhost7C ~]# docker login harbor.zzhz.com
Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded

#下载
[root@localhost7C ~]# docker pull nginx
[root@localhost7C ~]# docker images
REPOSITORY                                  TAG             IMAGE ID       CREATED       SIZE
nginx                                       latest          12766a6745ee   2 weeks ago   141MB

#打标签,baseimage先要创建。
[root@localhost7C ~]# docker tag 12766a6745ee  harbor.zzhz.com/baseimage/nginx:latest

#上传Harbor
[root@localhost7C ~]# docker push harbor.zzhz.com/baseimage/nginx:latest


7.web页面登录查看

 

 

二、部署haproxy keeplivad高可用反向代理

1.同步时间服务
[root@localhost7B ~]# ntpdate   time1.aliyun.com && hwclock  -w
开启路由转发
[root@localhost7B ~]# echo 1 > /proc/sys/net/ipv4/ip_forward   
2.下载YUM源
[root@localhost7B ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost7B ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

3.安装软件
[root@localhost7B ~]# yum install keepalived  haproxy  -y
 
   
4.配置keepalived
[root@localhost7B ~]# cat /etc/keepalived/keepalived.conf 

global_defs {
   notification_email {
     root@localhost
   }
   notification_email_from root@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id localhost7B
   vrrp_iptables
   vrrp_garp_interval 0
   vrrp_gna_interval 0
   vrrp_mcast_group4 224.0.0.18
}
vrrp_instance zzhz {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 95
    advert_int 2
    authentication {
        auth_type PASS
        auth_pass centos
    }
    virtual_ipaddress {
        192.168.80.222/24 dev eth0 label eth0:1
    }
}

5.配置haproxy
[root@localhost7B ~]# cat /etc/haproxy/haproxy.cfg 
global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    stats socket /var/lib/haproxy/stats

defaults
    mode                    http

    option                  httplog
    option                  dontlognull
    option http-server-close
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

listen stats
   mode http
   bind 0.0.0.0:9999
   stats enable
   log global
   stats uri /haproxy-status
   stats auth haadmin:12345

listen k8s-6443
   bind 192.168.80.222:6443
   mode tcp
   balance roundrobin
    server 192.168.80.120 192.168.80.120:6443 check inter 2s fall 3 rise 5
    server 192.168.80.130 192.168.80.130:6443 check inter 2s fall 3 rise 5
    server 192.168.80.140 192.168.80.140:6443 check inter 2s fall 3 rise 5

6.启动服务
[root@localhost7B ~]# systemctl enable  keepalived.service   haproxy.service 
[root@localhost7B ~]# systemctl start keepalived.service 
[root@localhost7B ~]# systemctl status  keepalived.service 
[root@localhost7B ~]# systemctl start haproxy.service 
[root@localhost7B ~]# systemctl status haproxy.service

 

三、部署master 

 

四、部署Node节点设置

 

五、部署网络组件 flannel

 

标签:haproxy,harbor,com,192.168,docker,k8s,root
From: https://www.cnblogs.com/Yuanbangchen/p/17158579.html

相关文章

  • K8S中PV和PVC
    前言容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet会重启它,但是容器中的文件将丢失——容器以干净的状态......
  • K8S Pod Sidecar 应用场景之一-加入 NGINX Sidecar 做反代和 web 服务器
    KubernetesPodSidecar简介Sidecar是一个独立的容器,与Kubernetespod中的应用容器一起运行,是一种辅助性的应用。Sidecar的常见辅助性功能有这么几种:服务网格(s......
  • k8s 之 滚动更新
    背景公司做的是医院的院内系统,医院存在24小时的急诊,所以需要程序7*24小时不间断;在程序更新的时候,就需要滚动更新。DockerSwarm中的滚动更新目前公司部署使用的是docke......
  • 1、Kyuubi在竞技世界大数据平台实践--Kyuubi on K8S读取kerberosed CD
    背景为满足业务大数据架构使用多种sql引擎:spark,flink,trino(同时查询hive,clickhouse等),需要部署一个统一的sql入口,该入口满足多引擎多平台运行;本次实践是上述需求的一个......
  • K8S-pod进阶
    一.资源限制当定义Pod时可以选择性地为每个容器设定所需要的资源数量。最常见的可设定资源是CPU和内存大小,以及其他类型的资源。 当为Pod中的容器指定了req......
  • K8Syaml文件详解
    一、K8S支持的文件格式kubernetes支持YAML和JSON文件格式管理资源对象。JSON格式:主要用于api接口之间消息的传递YAML格式:用于配置和管理,YAML是一种简洁的非标记性语言,内......
  • K8SPod进阶资源限制以及探针
    一、Pod进阶1、资源限制当定义Pod时可以选择性地为每个容器设定所需要的资源数量。最常见的可设定资源是CPU和内存大小,以及其他类型的资源。当为Pod中的容器指......
  • K8S调度约束
    一、调度约束Kubernetes是通过List-Watch(监控)的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦。用户是通过kubectl根据配置文件,向APIServer......
  • 【云原生】k8s 离线部署讲解和实战操作
    目录一、概述二、前期准备1)节点信息2)修改主机名和配置hosts3)配置ssh互信4)时间同步5)关闭防火墙6)关闭swap7)禁用SELinux8)允许iptables检查桥接流量三、开始部署1)离线安装d......
  • k8s service
    定义Service一个Service在k8s中是一个rest对象,和pod类似,像所有的rest对象一样,Servvice定义可以基于post方式,请求apiserver创建的新的实例,例如,假如有一组pod,他们对外暴露了......