[k8s集群系列-01]环境规划及系统初始化

环境规划及组件

节点划分

HostnameIPRoleCpuMemoryDiskTypeother
k8s-m1-16-235192.168.16.235master4c8G40Getcd,kube-apiserver,kube-scheduler,kube-controller-manager
k8s-m2-16-236192.168.16.236master4c8G40Getcd,kube-apiserver,kube-scheduler,kube-controller-manager
k8s-m3-16-237192.168.16.237master4c8G40Getcd,kube-apiserver,kube-scheduler,kube-controller-manager
k8s-n1-16-238192.168.16.238node8c8G60Getcd,kubelet,kube-proxy ,docker
k8s-n2-16-239192.168.16.239node8c8G60Getcd,kubelet,kube-proxy ,docker
k8s-n3-16-240192.168.16.240node8c8G60Gkubelet,kube-proxy ,docker
k8s-n4-16-241192.168.16.241node8c8G60Gkubelet,kube-proxy ,docker
k8s-n5-16-242192.168.16.242node8c8G60Gkubelet,kube-proxy ,docker
k8s-n6-16-243192.168.16.243node8c8G60Gkubelet,kube-proxy ,docker
k8s-n7-16-244192.168.16.244node8c8G60Gkubelet,kube-proxy ,docker
k8s-lb1-16-245192.168.16.245lb8c8G60Ghaproxy+keepalivedvip:192.168.16.247
k8s-lb2-16-246192.168.16.246lb8c8G60Ghaproxy+keepalived

使用的组件

moduleversionofficial websitedescription
cfssl1.3.2github开源的PKI解决方案
etcdv3.3.6官网分布式,一致性kv存储
kubernetesv1.10.3githubkubernetes核心程序
docker-ce18.03.1-ce官网
flannellatestgithubkube-addons,network
corednslatestgithubkube-addons,dns
traefiklatestgithubkube-addons,ingress
harborlatestguthub镜像私有仓库
haproxy1.89官网负载均衡开源套件
keepalived1.4.4官网高可用开源套件

系统初始化

系统初始化参考初始化脚本

定义hosts,ssh-key认证

hosts

grep ^192 /etc/hosts > iplist.txt
> cat iplist.txt
192.168.16.235   k8s-m1-16-235
192.168.16.236   k8s-m2-16-236
192.168.16.237   k8s-m3-16-237
192.168.16.238   k8s-n1-16-238
192.168.16.239   k8s-n2-16-239
192.168.16.240   k8s-n3-16-240
192.168.16.241   k8s-n4-16-241
192.168.16.242   k8s-n5-16-242
192.168.16.243   k8s-n6-16-243
192.168.16.244   k8s-n7-16-244
192.168.16.245   k8s-lb1-16-245
192.168.16.246   k8s-lb2-16-246
192.168.16.247   api.kubernetes.master

ssh-key认证

> cat ssh_sync.sh
#!/bin/bash

user='root' # root还是少用的好,虽然都这么说,但还是喜欢直接用它
passwd='' # 你的密码
yum install expect -y
ssh-keygen -t rsa -N '' -f /root/.ssh/id_rsa   # 生成ssh-key
for hosts in $(awk -F' ' '{print $2}' iplist.txt); do
(
    /usr/bin/expect<<EOF
    set timeout -1
    spawn ssh-copy-id  $user@$hosts
    expect {
    "*yes/no" { send "yes\r";exp_continue }
    "password:" { send "$passwd\r"}
    }
    expect eof

EOF
)
        #name=`grep $ip iplist.txt| awk -F' ' '{print $2}'`
        #ssh $user@$ip "/usr/bin/hostnamectl set-hostname $name"
        scp /etc/hosts $user@$hosts:/etc/hosts
done

cfssl工具编译

部署go编译环境

下载go

wget https://dl.google.com/go/go1.10.2.linux-amd64.tar.gz

安装go

tar -xf go1.10.2.linux-amd64.tar.gz -C /usr/local/

配置环境变量

cat >> /etc/profile.d/go.sh << EOF
export GOROOT=/usr/local/go
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:\$GOROOT/bin
export GOPATH=/home/ron/go
EOF

source /etc/profile.d/go.sh
go version

编译cfssl工具

cfssl

go get -u github.com/cloudflare/cfssl/cmd/cfssl
# 会生成在GOPATH/bin目录下

cfssljson

go get -u github.com/cloudflare/cfssl/cmd/cfssljson

cfssl-certinfo

go get -u github.com/cloudflare/cfssl/cmd/cfssl-certinfo

将生成的文件复制到/usr/local/bin

总结脚本

#!/bin/bash

function install_go(){
    wget -P /usr/local/src  https://dl.google.com/go/go1.10.2.linux-amd64.tar.gz
    tar -xf /usr/local/src/go1.10.2.linux-amd64.tar.gz -C /usr/local/
    mkdir -p /opt/go_workspace
cat >> /etc/profile.d/go.sh << EOF
export GOROOT=/usr/local/go
export PATH=$PATH:\$GOROOT/bin
export GOPATH=/opt/go_workspace
EOF
    source /etc/profile.d/go.sh
}
function build_cfssl(){
    go get -u github.com/cloudflare/cfssl/cmd/cfssl
    go get -u github.com/cloudflare/cfssl/cmd/cfssljson
    go get -u github.com/cloudflare/cfssl/cmd/cfssl-certinfo
    mv /opt/go_workspace/bin/cfssl* /usr/local/bin/
    chmod +x /usr/local/bin/*
}

转载于:https://www.cnblogs.com/knmax/p/9212675.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值