前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kubeadm 搭建K8S 1.18集群--安装kubeadm和api-server

kubeadm 搭建K8S 1.18集群--安装kubeadm和api-server

原创
作者头像
陈不成i
修改2021-07-01 14:34:14
5860
修改2021-07-01 14:34:14
举报
文章被收录于专栏:ops技术分享

安装kubeadm

2.master节点安装

代码语言:javascript
复制
#这里我在k8s-01 k8s-02 k8s-03执行master节点操作
yum install -y \
    kubeadm-1.18.3 \
    kubectl-1.18.3 \
    kubelet-1.18.3 \
    --disableexcludes=kubernetes && \
    systemctl enable kubelet
#kubeadm 安装集群
#kubectl 通过命令行访问apiserver
#kubelet 负责Pod对应容器的创建、停止等任务
#node节点不需要安装kubectl,kubectl是一个agent读取kubeconfig访问api-server来操作集群,node节点一般不需要

3.node节点安装

代码语言:javascript
复制
#node节点安装默认是在所有节点安装,但是k8s中的master节点已经安装过了,我们就只在k8s-04 k8s-05中安装
yum install -y \
    kubeadm-1.18.3 \
    kubelet-1.18.3 \
    --disableexcludes=kubernetes && \
    systemctl enable kubelet

api-server 高可用部署 (单master可跳过)

我这里的环境是虚拟机,如果是云环境可以直接用slb的方式,这一步可以跳过。 虚拟机这里使用nginx local proxy

1.需要在master节点安装

代码语言:javascript
复制
#首先我们在原有的基础上添加一个host,只需要在master节点上执行即可
cat >>/etc/hosts<< EOF
192.168.31.100  k8s-master-01
192.168.31.101  k8s-master-02
192.168.31.102  k8s-master-03
192.168.31.105  k8s-master
EOF

2.添加nginx配置文件

代码语言:javascript
复制
mkdir -p /etc/kubernetes
cat > /etc/kubernetes/nginx.conf << EOF
user nginx nginx;
worker_processes auto;
events {
    worker_connections  20240;
    use epoll;
}
error_log /var/log/nginx_error.log info;
stream {
    upstream kube-servers {
        hash $remote_addr consistent;
        server k8s-master-01:6443 weight=5 max_fails=1 fail_timeout=3s;  #这里可以写IP
        server k8s-master-02:6443 weight=5 max_fails=1 fail_timeout=3s;
        server k8s-master-03:6443 weight=5 max_fails=1 fail_timeout=3s;
    }
    server {
        listen 8443 reuseport;
        proxy_connect_timeout 3s;
        # 加大timeout
        proxy_timeout 3000s;
        proxy_pass kube-servers;
    }
}
EOF

3.在master节点启动nginx容器

代码语言:javascript
复制
#这里我使用容器运行nginx,当然自己也可以写成staticPod的yaml在init的阶段放入目录里,或者二进制安装nginx
docker run --restart=always \
    -v /etc/kubernetes/nginx.conf:/etc/nginx/nginx.conf \
    -v /etc/localtime:/etc/localtime:ro \
    --name k8s \
    --net host \
    -d \
    nginx:alpine

4.启动完毕可以检查看一下

代码语言:javascript
复制
[root@k8s-01 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
d8b3955bda68        nginx:alpine        "nginx -g 'daemon of…"   2 minutes ago       Up 2 minutes                            k8s
[root@k8s-01 ~]# lsof -i:8443
lsof: no pwd entry for UID 101
COMMAND  PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   3360     root    5u  IPv4  58860      0t0  TCP *:pcsync-https (LISTEN)
lsof: no pwd entry for UID 101
nginx   3374      101    5u  IPv4  58860      0t0  TCP *:pcsync-https (LISTEN)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装kubeadm
  • api-server 高可用部署 (单master可跳过)
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档