k8s master二进制部署 systemd管理

k8s二进制部署比较繁琐,一下内容 仅供 参考,错误地方请不吝评论

k8s组件介绍

核心概念

pod
  • pod是k8s最小的部署单元
  • 一个pod中可以有一个或者多个容器(一组容器的集合,即容器组)
  • 一个pod中的容器共享网络命名空间
  • pod是短暂的
controllers:控制器,用来控制pod,启动、停止、删除
  • ReplicaSet:确保预期的pod副本数量
  • Deployment:无状态应用部署(用的多)
  • StatefulSet:有状态应用部署
  • DaemonSet:确保所有Node运行同一个Pod
  • Job:一次性任务
  • Cronjob:定时任务
Service:服务

将一组pod关联起来,提供一个统一的入口,即使pod的网络地址发生改变,这个统一入口也不会改变

  • 防止pod失联
  • 定义一组pod的访问策略
Label:标签

一组pod有一个统一的标签,service通过标签和一组pod进行关联

NameSpace:命名空间

用来隔离pod的运行环境【默认情况下,pod是可以互相访问的】

使用场景:

  • 为不同的公司提供隔离的pod运行环境
  • 为开发环境、测试环境、生产环境分别准备不同的名称空间,进行隔离

Kubernetes里的3种IP

  • Node IP:Node的ip地址。Node IP是Kubernetes集群中每个节点的物理网卡的IP地址,是一个真实存在的物理网络,所有属于这个网络的服务器都能通过这个网络直接通信,不管其中是否有部分节点不属于这个Kubernetes集群。这也表明在Kubernetes集群之外的节点访问Kubernetes集群之内的某个节点或者TCP/IP服务时,都必须通过NodeIP通信。
  • Pod IP:Pod的ip地址。Pod IP是每个Pod的IP地址,它是Docker Engine根据docker0网桥的IP地址段进行分配的,通常是一个虚拟的二层网络,前面说过,Kubernetes要求位于不同Node上的Pod都能够彼此直接通信,所以Kubernetes里一个Pod里的容器访问另外一个Pod里的容器时,就是通过Pod IP所在的虚拟二层网络进行通信的,而真实的TCP/IP流量是通过Node IP所在的物理网卡流出的。
  • Cluster IP:Service的ip地址。Cluster IP仅仅作用于Kubernetes Service这个对象,并由Kubernetes管理和分配IP地址;Cluster IP无法被Ping,因为没有一个“实体网络对象”来响应;Cluster IP只能结合Service Port组成一个具体的通信端口,单独的Cluster IP不具备TCP/IP通信的基础,并且它们属于Kubernetes集群这样一个封闭的空间,集群外的节点如果要访问这个通信端口,则需要做一些额外的工作。

etcd 部署

安装cfssl

cd /opt/
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64

chmod +x cfssl_linux-amd64 cfssljson_linux-amd64 cfssl-certinfo_linux-amd64

mv cfssl_linux-amd64 /usr/local/bin/cfssl

mv cfssljson_linux-amd64 /usr/local/bin/cfssljson

mv cfssl-certinfo_linux-amd64 /usr/bin/cfssl-certinfo
chmod +x /usr/local/bin/cfssl*

生成ca证书:

mkdir /opt/certs && cd /opt/certs
#生成csr.json
cat >> ca-csr.json << eof
{
   
    "CN": "k8s-CA",
    "key": {
   
        "algo": "rsa",
        "size": 2048
    },
    "names": [
        {
   
            "C": "CN",
            "L": "BeiJing",
            "ST": "BeiJing"
        }
    ]
}
eof

生成ca证书
cfssl gencert -initca ca-csr.json | cfssljson -bare ca
生成ca-config.json
cat >> ca-config.json <<eof
{
   
    "signing": {
   
        "default": {
   
            "expiry": "175200h"
        },
        "profiles": {
   
            "server": {
   
                "expiry": "175200h",
                "usages": [
                    "signing",
                    "key encipherment",
                    "server auth"
                ]
            },
            "client": {
   
                "expiry": "175200h",
                "usages": [
                    "signing",
                    "key encipherment",
                    "client auth"
                ]
            },
            "peer": {
   
                "expiry": "175200h",
                "usages": [
                    "signing",
                    "key encipherment",
                    "server auth",
                    "client auth"
                ]
            }
        }
    }
}
eof

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值