链接地址 https://www.cnblogs.com/leleyao/p/10453848.html  安装etcd

证书制作

apiserver 证书

[root@master01 ssl]# ls *json
ca-config.json ca-csr.json server-csr.json
[root@master01 ssl]# cat *json
{
"signing": {
"default": {
"expiry": "87600h"
},
"profiles": {
"kubernetes": {
"expiry": "87600h",
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
]
}
}
}
}
{
"CN": "kubernetes",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "BeiJing",
"ST": "BeiJing",
"O": "cnpc",
"OU": "RF"
}
]
}
{
"CN": "kubernetes",
"hosts": [
"10.0.0.1",
"127.0.0.1",
"172.16.8.100",
"kubernetes",
"kubernetes.default",
"kubernetes.default.svc",
"kubernetes.default.svc.cluster",
"kubernetes.default.svc.cluster.local"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "BeiJing",
"ST": "BeiJing",
"O": "cnpc",
"OU": "RF"
}
]
} cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes server-csr.json | cfssljson -bare server

kube-proxy 的证书

[root@master01 ssl]# cat proxy-csr.json
{
"CN": "kube-proxy",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "BeiJing",
"ST": "BeiJing",
"O": "cnpc",
"OU": "RF"
}
]
} cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes proxy-csr.json | cfssljson -bare kube-proxy

配置flannel 服务

etcdctl --cacert=/etc/etcd/ssl/ca.pem --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem --endpoints=https://192.168.141.135:2379,https://192.168.141.136:2379,https://192.168.141.137:2379  put /coreos.com/network/config  '{ "Network": "172.18.0.0/16", "Backend": {"Type": "vxlan"}}
flanneld 当前版本 (v0.10.0) 不支持 etcd v3,故使用 etcd v2 API 写入配置 key 和网段数据

修改配置文件

通过yum方式获取默认 systemd 文件
[root@master01 ~]# cat /usr/lib/systemd/system/flanneld.service
[Unit]
Description=Flanneld overlay address etcd agent
After=network.target
After=network-online.target
Wants=network-online.target
After=etcd.service
Before=docker.service [Service]
Type=notify
EnvironmentFile=/etc/sysconfig/flanneld
EnvironmentFile=-/etc/sysconfig/docker-network
ExecStart=/bin/flanneld-start $FLANNEL_OPTIONS #注意启动命令的位置
ExecStartPost=/bin/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker #博主nc,写错了路径 flannel 重启了 1000次
Restart=on-failure [Install]
WantedBy=multi-user.target
WantedBy=docker.service

[root@master01 ~]# cat /usr/lib/systemd/system/docker.service.d/flannel.conf
[Service]
EnvironmentFile=-/run/flannel/docker

[root@master01 ~]# rpm -ql flannel
/etc/sysconfig/flanneld
/run/flannel
/usr/bin/flanneld
/usr/bin/flanneld-start
/usr/lib/systemd/system/docker.service.d/flannel.conf
/usr/lib/systemd/system/flanneld.service
/usr/lib/tmpfiles.d/flannel.conf
/usr/libexec/flannel
/usr/libexec/flannel/mk-docker-opts.sh
/usr/share/doc/flannel-0.7.
/usr/share/doc/flannel-0.7./CONTRIBUTING.md
/usr/share/doc/flannel-0.7./DCO
/usr/share/doc/flannel-0.7./LICENSE
/usr/share/doc/flannel-0.7./MAINTAINERS
/usr/share/doc/flannel-0.7./NOTICE
/usr/share/doc/flannel-0.7./README.md
保留 /etc/flanne/usr/lib/systemd/system/docker.service.d/flannel.conf/usr/lib/systemd/system/flanneld.service
[root@master01 ~]# cd /etc/kubernetes/
[root@master01 kubernetes]# mkdir flannel
[root@master01 flannel]# cp /usr/lib/systemd/system/docker.service.d/flannel.conf .

[root@master01 flannel]# cp /etc/sysconfig/flanneld .

[root@master01 flannel]# cp /usr/lib/systemd/system/flanneld.service .

[root@master01 flannel]# vim /etc/sysconfig/flanneld

# Flanneld configuration options

# etcd url location. Point this to the server where etcd runs
FLANNEL_ETCD_ENDPOINTS=FLANNEL_ETCD_ENDPOINTS=FLANNEL_ETCD_ENDPOINTS="-etcd-cafile=/etc/etcd/ssl/ca.pem -etcd-certfile=/etc/etcd/ssl/etcd.pem -etcd-keyfile=/etc/etcd/ssl/etcd-key.pem -etcd-endpoints=https://192.168.141.135:2379,https://192.168.141.136:2379,https://192.168.141.137:2379"

# etcd config key. This is the configuration key that flannel queries
# For address range assignment
FLANNEL_ETCD_PREFIX="/coreos.com/network"

# Any additional options that you want to pass
#FLANNEL_OPTIONS=""

[root@master01 flannel]# ansible all -m copy -a 'src=/etc/sysconfig/flanneld dest=/etc/sysconfig/flanneld'
192.168.141.135 | SUCCESS => {
"changed": false,
"checksum": "d45252d0c4214ef41743ae03ef0efa2668b84add",
"gid": 0,
"group": "root",
"mode": "0644",
"owner": "root",
"path": "/etc/sysconfig/flanneld",
"size": 536,
"state": "file",
"uid": 0
}
192.168.141.137 | SUCCESS => {
"changed": true,
"checksum": "d45252d0c4214ef41743ae03ef0efa2668b84add",
"dest": "/etc/sysconfig/flanneld",
"gid": 0,
"group": "root",
"md5sum": "3da1d82f18fda0747be4565ea1f426f7",
"mode": "0644",
"owner": "root",
"size": 536,
"src": "/root/.ansible/tmp/ansible-tmp-1558088021.59-228568509248759/source",
"state": "file",
"uid": 0
}
192.168.141.136 | SUCCESS => {
"changed": true,
"checksum": "d45252d0c4214ef41743ae03ef0efa2668b84add",
"dest": "/etc/sysconfig/flanneld",
"gid": 0,
"group": "root",
"md5sum": "3da1d82f18fda0747be4565ea1f426f7",
"mode": "0644",
"owner": "root",
"size": 536,
"src": "/root/.ansible/tmp/ansible-tmp-1558088021.57-153282686622293/source",
"state": "file",
"uid": 0
}

mk-docker-opts.sh 脚本将分配给 flanneld 的 Pod 子网网段信息写入 /run/flannel/docker 文件,后续 docker 启动时 使用这个文件中的环境变量配置 docker0 网桥;

flanneld 使用系统缺省路由所在的接口与其它节点通信,对于有多个网络接口(如内网和公网)的节点,可以用 -iface 参数指定通信接口,如上面的 eth0 接口;

flanneld 运行时需要 root 权限

确定 etcd状态

[root@master02 yum.repos.d]# etcdctl --ca-file=/etc/etcd/ssl/ca.pem --cert-file=/etc/etcd/ssl/etcd.pem --key-file=/etc/etcd/ssl/etcd-key.pem --endpoints='https://192.168.141.135:2379,https://192.168.141.136:2379,https://192.168.141.137:2379' ls /coreos.com/network/subnets/
/coreos.com/network/subnets/172.18.62.0-24
/coreos.com/network/subnets/172.18.80.0-24
/coreos.com/network/subnets/172.18.53.0-24

  

二进制安装kubernetes集群的更多相关文章

  1. 二进制部署 Kubernetes 集群

    二进制部署 Kubernetes 集群   提供的几种Kubernetes部署方式 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernet ...

  2. CentOS 7.5 使用 yum 安装 Kubernetes 集群(二)

    一.安装方式介绍 1.yum 安装 目前CentOS官方已经把Kubernetes源放入到自己的默认 extras 仓库里面,使用 yum 安装,好处是简单,坏处也很明显,需要官方更新 yum 源才能 ...

  3. VirtualBox上使用kubeadm安装Kubernetes集群

    之前一直使用minikube练习,为了更贴近生产环境,使用VirtualBox搭建Kubernetes集群. 为了不是文章凌乱,把在搭建过程中遇到的问题及解决方法记在了另一篇文章:安装Kubernet ...

  4. 安装Kubernetes集群时遇到的问题及解决方法

    在搭建Kubernetes集群时遇到一些问题,记录在这里. 搭建过程在另一篇文章:VirtualBox上使用kubeadm安装Kubernetes集群 1. 虚拟机安装完CentOS7登录时遇到war ...

  5. Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)

    背景: 由于工作发生了一些变动,很长时间没有写博客了. 概述: 这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别).使用了Centos 7系统. 一.Centos7 ...

  6. 从0到1使用Kubernetes系列(三):使用Ansible安装Kubernetes集群

    前两期的文章介绍了Kubernetes基本概念和架构,用Kubeadm+Ansible搭建Kubernetes集群所需要的工具及其作用.本篇介绍怎么使用Ansible安装Kubernetes集群. 启 ...

  7. 二进制搭建Kubernetes集群(最新v1.16.0版本)

    目录 1.生产环境k8s平台架构 2.官方提供三种部署方式 3.服务器规划 4.系统初始化 5.Etcd集群部署 5.1.安装cfssl工具 5.2.生成etcd证书 5.2.1 创建用来生成 CA ...

  8. 二进制部署kubernetes集群(上篇)

    1.实验架构 1.1.硬件环境 准备5台2c/2g/50g虚拟机,使用10.4.7.0/24 网络 .//因后期要直接向k8s交付java服务,因此运算节点需要4c8g.不交付服务,全部2c2g足够. ...

  9. 二进制文件方式安装kubernetes集群

    所有操作全部用root使用者进行,高可用一般建议大于等于3台的奇数,我们使用3台master来做高可用 练习环境说明: 参考GitHub master: kube-apiserver,kube-con ...

随机推荐

  1. CentOS7搭建Kafka单机环境及基础操作

    前提 安装Kafka前需要先安装zookeeper集群,集体安装方法请参照我的另一篇文档. Kafka安装 下载 wget https://archive.apache.org/dist/kafka/ ...

  2. CtfStudying之SSH私钥泄露

    8/23/19 SSH私钥泄露 对于只是给定一个对应ip地址的靶场机器,我们需要对其进行扫描,探测其开放服务.我原来理解的渗透就是找到目标的漏洞,然后利用这些(这种)漏洞,最后拿到机器的最高权限:其实 ...

  3. 03.LinuxCentOS系统root目录LVM磁盘扩容

    根目录LVM扩容操作步骤: [root@centos7 ~]# df -lh文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/centos-root 50G 7.7G 43G 6% / ...

  4. python面向对象--类和实例的认识

    '''1.数据属性 2.函数属性''' #创建一个类class Chinese: "这是一个中国人的类" #类属性 money=4000 #注意类和对象均用点来访问自己的属性 de ...

  5. generator (2)

    generator 的使用 第一次调用next  时  传参没有任何意义  打印不出来任何结果 function * read(){ let a = yield 1; console.log(a); ...

  6. spring boot 1.视图解析器,2.开启静态资源访问

    1.spring boot 视图解析器 #视图解析器 #前缀spring.mvc.view.prefix=/pages/ #后缀..jsp.dospring.mvc.view.suffix=.jsp ...

  7. 程序猿看了要xiao了

    一. 程序猿问科比:“你为什么这么成功? ”科比:“你知道洛杉矶凌晨四点是什么样子吗? ”程序猿:“知道,一般那个时候我还在写代码,怎么了?”科比:“额…….” 二. 女神:你能让这个论坛的人都吵起来 ...

  8. PHPcms编辑器如何粘贴带格式的word文档

    在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...

  9. vue2.0 之 douban (五)创建cell,media-cell组件

    1.组件cell 这里的cell分为三种样式,左侧带图标,不带图标,以及左侧带竖线的cell. 每一个组件都有一个底部边框: 这里我们采用了移动端1px像素问题的解决方法:父级元素设置相对定位,构建1 ...

  10. 前端工具-ES6相关工具

    处理 ES6 语法 使用 Babel Babel 是一个用于将 ECMAScript 2015+ 代码转换为新旧浏览器或其他环境支持的 JavaScript 向下兼容版本代码的工具链. Babel 主 ...