分享知识,分享快乐

0%

tags: etcd

04.部署 etcd 集群

etcd 是基于 Raft 的分布式 key-value 存储系统,由 CoreOS 开发,常用于服务发现、共享配置以及并发控制(如 leader 选举、分布式锁等)。kubernetes 使用 etcd 存储所有运行数据。

本文档介绍部署一个三节点高可用 etcd 集群的步骤:

  • 下载和分发 etcd 二进制文件;
  • 创建 etcd 集群各节点的 x509 证书,用于加密客户端(如 etcdctl) 与 etcd 集群、etcd 集群之间的数据流;
  • 创建 etcd 的 systemd unit 文件,配置服务参数;
  • 检查集群工作状态;

etcd 集群各节点的名称和 IP 如下:

  • kube-node1:172.27.129.105
  • kube-node2:172.27.129.111
  • kube-node3:172.27.129.112

下载和分发 etcd 二进制文件

https://github.com/coreos/etcd/releases 页面下载最新版本的发布包:

wget https://github.com/coreos/etcd/releases/download/v3.3.7/etcd-v3.3.7-linux-amd64.tar.gz
tar -xvf etcd-v3.3.7-linux-amd64.tar.gz
阅读全文 »

tags: kubectl

03.部署 kubectl 命令行工具

kubectl 是 kubernetes 集群的命令行管理工具,本文档介绍安装和配置它的步骤。

kubectl 默认从 ~/.kube/config 文件读取 kube-apiserver 地址、证书、用户名等信息,如果没有配置,执行 kubectl 命令时可能会出错:

$ kubectl get pods
The connection to the server localhost:8080 was refused - did you specify the right host or port?

本文档只需要部署一次,生成的 kubeconfig 文件与机器无关。

下载和分发 kubectl 二进制文件

下载和解压:

wget https://dl.k8s.io/v1.10.4/kubernetes-client-linux-amd64.tar.gz
tar -xzvf kubernetes-client-linux-amd64.tar.gz

分发到所有使用 kubectl 的节点:

阅读全文 »

tags: TLS, CA, x509

02.创建 CA 证书和秘钥

为确保安全,kubernetes 系统各组件需要使用 x509 证书对通信进行加密和认证。

CA (Certificate Authority) 是自签名的根证书,用来签名后续创建的其它证书。

本文档使用 CloudFlare 的 PKI 工具集 cfssl 创建所有证书。

安装 cfssl 工具集

sudo mkdir -p /opt/k8s/cert && sudo chown -R k8s /opt/k8s && cd /opt/k8s
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
mv cfssl_linux-amd64 /opt/k8s/bin/cfssl

wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
mv cfssljson_linux-amd64 /opt/k8s/bin/cfssljson

wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
mv cfssl-certinfo_linux-amd64 /opt/k8s/bin/cfssl-certinfo

chmod +x /opt/k8s/bin/*
export PATH=/opt/k8s/bin:$PATH

创建根证书 (CA)

CA 证书是集群所有节点共享的,只需要创建一个 CA 证书,后续创建的所有证书都由它签名。

创建配置文件

阅读全文 »

tags: environment

01.系统初始化和全局变量

集群机器


  • kube-node1:172.27.129.105
  • kube-node2:172.27.129.111
  • kube-node3:172.27.129.112

本着测试的目的,etcd 集群、kubernetes master 集群、kubernetes node 均使用这三台机器。

若有安装 Vagrant 与 Virtualbox,这三台机器可以用本着提供的 Vagrantfile 来建置:

$ cd vagrant
$ vagrant up

主机名


阅读全文 »

tags: version

00.组件版本和配置策略

组件版本

  • Kubernetes 1.10.4
  • Docker 18.03.1-ce
  • Etcd 3.3.7
  • Flanneld 0.10.0
  • 插件:
    • Coredns
      • Dashboard
      • Heapster (influxdb、grafana)
      • Metrics-Server
      • EFK (elasticsearch、fluentd、kibana)
  • 镜像仓库:
    • docker registry
      • harbor

主要配置策略

kube-apiserver:

  • 使用 keepalived 和 haproxy 实现 3 节点高可用;
  • 关闭非安全端口 8080 和匿名访问;
  • 在安全端口 6443 接收 https 请求;
  • 严格的认证和授权策略 (x509、token、RBAC);
  • 开启 bootstrap token 认证,支持 kubelet TLS bootstrapping;
  • 使用 https 访问 kubelet、etcd,加密通信;

kube-controller-manager:

  • 3 节点高可用;
  • 关闭非安全端口,在安全端口 10252 接收 https 请求;
  • 使用 kubeconfig 访问 apiserver 的安全端口;
  • 自动 approve kubelet 证书签名请求 (CSR),证书过期后自动轮转;
  • 各 controller 使用自己的 ServiceAccount 访问 apiserver;

kube-scheduler:

阅读全文 »

查找solr服务器web地址

find / -name WEB-INF

[root@bigdata-3 lib]# pwd
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/solr/server/solr-webapp/webapp/WEB-INF/lib

/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/solr/server/solr-webapp/webapp/WEB-INF/lib

/opt/cloudera/parcels/CDH/lib/solr/server/solr-webapp/webapp/WEB-INF/lib

添加ik jar包到指定位置 并修改权限

1
2
-rwxr-xr-x 1 root root 1184820 May  7 10:29 ik-analyzer-7.5.0.jar
[root@bigdata-3 lib]#

WEB-INF 创建classes 我们把IKAnalyzer.cfg.xml、stopword.dic拷贝到需要使用分词器的core的conf下面,

将resources目录下的5个配置文件放入solr服务的Jetty或Tomcat的webapp/WEB-INF/classes/目录下;

1
2
3
4
5
① IKAnalyzer.cfg.xml
② ext.dic
③ stopword.dic
④ ik.conf
⑤ dynamicdic.txt
阅读全文 »

生成本地配置

1
solrctl instancedir --generate $HOME/test_collection_config

上传到zk

1
solrctl instancedir --create test_collection_config $HOME/test_collection_config

创建collection

1
solrctl collection --create test_collection -s 1 -c test_collection_config

4. post数据

1
2
cd /opt/cloudera/parcels/CDH/share/doc/solr-doc*/example/exampledocs
java -Durl=http://bigdata-3.baofoo.cn:8983/solr/test_collection/update -jar post.jar *.xml

查看 hdfs dir

1
2
3
4
5
6
hadoop fs -ls -R /solr/test_co*/

drwxr-xr-x - solr solr 0 2019-05-08 22:07 /solr/test_collection/core_node2
drwxr-xr-x - solr solr 0 2019-05-08 22:07 /solr/test_collection/core_node2/data
drwxr-xr-x - solr solr 0 2019-05-08 22:12 /solr/test_collection/core_node2/data/index
-rwxr-xr-x 3 solr solr 82 2019-05-08 22:12 /solr/test_collection/core_node2/data/index/_0.dii
阅读全文 »

linux shell 配置文件中默认的字符集编码为UTF-8

accii 文件显示中文乱码

用iconv进行转换就可以了

1
iconv -f GBK -t UTF-8 1.csv > 3.csv

查了下iconv命令用法如下:

iconv [选项…] [文件…]

有如下选项可用:

输入/输出格式规范:
-f, --from-code=名称 原始文本编码
-t, --to-code=名称 输出编码

信息:
-l, --list 列举所有已知的字符集

输出控制:
-c 从输出中忽略无效的字符
-o, --output=FILE 输出文件
-s, --silent 关闭警告
–verbose 打印进度信息

阅读全文 »

JanusGraph Server搭建 hbase+ solr

https://blog.csdn.net/goandozhf/article/details/80105895#2068-1524796329245

创建janusgraph-hbase-solr-server.properties文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
gremlin.graph=org.janusgraph.core.JanusGraphFactory
storage.backend=hbase
storage.batch-loading=true
storage.hbase.table = janusgraph-test
storage.hostname=172.20.85.111
cache.db-cache = true
cache.db-cache-clean-wait = 20
cache.db-cache-time = 180000
cache.db-cache-size = 0.5
ids.block-size=100000000
storage.buffer-size=102400
storage.hbase.region-count = 15
index.search.backend=solr
index.search.solr.mode=http
index.search.solr.http-urls=http://172.20.85.111:8983/solr
index.search.hostname=172.20.85.111
index.search.index-name=janusgraph-test
阅读全文 »