首页 > 分享 > Kubernetes安装

Kubernetes安装

                      --昨夜西风凋碧树,独上高楼,望尽天涯路

环境准备

新装好三台虚拟机,系统均为Centos7.5:如何安装虚拟机

IP和K8S节点以及etcd对应关系:

为了节约资源将etcd集群和k8s放在统一服务器(建议分开)

192.168.2.207(k8s_1)k8s master节点etcd1192.168.2.181(k8s_2)k8s node节点etcd2192.168.2.182(k8s_3)k8s node节点etcd3

在三台虚拟机上面同时进行如下操作:

关闭防火墙:

systemctl stop firewalld.service 停止防火墙

systemctl disable firewalld.service 禁止开机启动

关闭selinux,首先编辑/etc/selinux/config,之后执行setenforce 0:

关闭swap分区:

配置转发相关参数:

cat <<EOF > /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

vm.swappiness=0

EOF

sysctl --system

加载ipvs模块:

cat << EOF > /etc/sysconfig/modules/ipvs.modules

#!/bin/bash

ipvs_modules_dir="/usr/lib/modules/`uname -r`/kernel/net/netfilter/ipvs"

for i in `ls $ipvs_modules_dir | sed -r 's#(.*).ko.xz#1#'`; do

/sbin/modinfo -F filename $i &> /dev/null

if [ $? -eq 0 ]; then

/sbin/modprobe $i

fi

done

EOF

chmod +x /etc/sysconfig/modules/ipvs.modules

bash /etc/sysconfig/modules/ipvs.modules

安装cfssl:

#在master节点安装即可!!!

wget -O /bin/cfssl https://pkg.cfssl.org/R1.2/cfssl_linux-amd64

wget -O /bin/cfssljson https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64

wget -O /bin/cfssl-certinfo https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64

for cfssl in `ls /bin/cfssl*`;do chmod +x $cfssl;done;

安装docker:

#安装 yum-utils工具

yum -y install yum-utils

#添加docker的yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

#安装docker

yum install -y docker-ce

mkdir /etc/docker/

#删除docker0网卡

cat << EOF > /etc/docker/daemon.json

{ "registry-mirrors": ["https://registry.docker-cn.com"],

"live-restore": true,

"default-shm-size": "128M",

"bridge": "none",

"max-concurrent-downloads": 10,

"oom-score-adjust": -1000,

"debug": false

}

EOF

#开机启动&重启docker

systemctl enable docker

systemctl restart docker

#重启后执行ip a命令,看不到docker0的网卡即可

docker安装成功:

docker0已经被干掉:

安装etcd

准备etcd证书(在master节点操作):

mkdir -pv $HOME/ssl && cd $HOME/ssl

cat > ca-config.json << EOF

{

"signing": {

"default": {

"expiry": "87600h"

},

"profiles": {

"kubernetes": {

"usages": [

"signing",

"key encipherment",

"server auth",

"client auth"

],

"expiry": "87600h"

}

}

}

}

EOF

cat > etcd-ca-csr.json << EOF

{

"CN": "etcd",

"key": {

"algo": "rsa",

"size": 2048

},

"names": [

{

"C": "CN",

"ST": "Shenzhen",

"L": "Shenzhen",

"O": "etcd",

"OU": "Etcd Security"

}

]

}

EOF

cat > etcd-csr.json << EOF

{

"CN": "etcd",

"hosts": [

"127.0.0.1",

"192.168.2.207",

"192.168.2.181",

"192.168.2.182"

],

"key": {

"algo": "rsa",

"size": 2048

},

"names": [

{

"C": "CN",

"ST": "Shenzhen",

"L": "Shenzhen",

"O": "etcd",

"OU": "Etcd Security"

}

]

}

EOF

#生成证书并复制证书至其他etcd节点

cfssl gencert -initca etcd-ca-csr.json | cfssljson -bare etcd-ca

cfssl gencert -ca=etcd-ca.pem -ca-key=etcd-ca-key.pem -config=ca-config.json -profile=kubernetes etcd-csr.json | cfssljson -bare etcd

mkdir -pv /etc/etcd/ssl

cp etcd*.pem /etc/etcd/ssl

scp -r /etc/etcd 192.168.2.207:/etc/

scp -r /etc/etcd 192.168.2.181:/etc/

scp -r /etc/etcd 192.168.2.182:/etc/

etcd1主机安装并启动etcd:

yum install -y etcd

cat << EOF > /etc/etcd/etcd.conf

#[Member]

#ETCD_CORS=""

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

#ETCD_WAL_DIR=""

ETCD_LISTEN_PEER_URLS="https://192.168.2.207:2380"

ETCD_LISTEN_CLIENT_URLS="https://127.0.0.1:2379,https://192.168.2.207:2379"

#ETCD_MAX_SNAPSHOTS="5"

#ETCD_MAX_WALS="5"

ETCD_NAME="etcd1"

#ETCD_SNAPSHOT_COUNT="100000"

#ETCD_HEARTBEAT_INTERVAL="100"

#ETCD_ELECTION_TIMEOUT="1000"

#ETCD_QUOTA_BACKEND_BYTES="0"

#ETCD_MAX_REQUEST_BYTES="1572864"

#ETCD_GRPC_KEEPALIVE_MIN_TIME="5s"

#ETCD_GRPC_KEEPALIVE_INTERVAL="2h0m0s"

#ETCD_GRPC_KEEPALIVE_TIMEOUT="20s"

#

#[Clustering]

ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.2.207:2380"

ETCD_ADVERTISE_CLIENT_URLS="https://127.0.0.1:2379,https://192.168.2.207:2379"

#ETCD_DISCOVERY=""

#ETCD_DISCOVERY_FALLBACK="proxy"

#ETCD_DISCOVERY_PROXY=""

#ETCD_DISCOVERY_SRV=""

ETCD_INITIAL_CLUSTER="etcd1=https://192.168.2.207:2380,etcd2=https://192.168.2.181:2380,etcd3=https://192.168.2.182:2380"

ETCD_INITIAL_CLUSTER_TOKEN="BigBoss"

#ETCD_INITIAL_CLUSTER_STATE="new"

#ETCD_STRICT_RECONFIG_CHECK="true"

#ETCD_ENABLE_V2="true"

#

#[Proxy]

#ETCD_PROXY="off"

#ETCD_PROXY_FAILURE_WAIT="5000"

#ETCD_PROXY_REFRESH_INTERVAL="30000"

#ETCD_PROXY_DIAL_TIMEOUT="1000"

#ETCD_PROXY_WRITE_TIMEOUT="5000"

#ETCD_PROXY_READ_TIMEOUT="0"

#

#[Security]

ETCD_CERT_FILE="/etc/etcd/ssl/etcd.pem"

ETCD_KEY_FILE="/etc/etcd/ssl/etcd-key.pem"

#ETCD_CLIENT_CERT_AUTH="false"

ETCD_TRUSTED_CA_FILE="/etc/etcd/ssl/etcd-ca.pem"

#ETCD_AUTO_TLS="false"

ETCD_PEER_CERT_FILE="/etc/etcd/ssl/etcd.pem"

ETCD_PEER_KEY_FILE="/etc/etcd/ssl/etcd-key.pem"

#ETCD_PEER_CLIENT_CERT_AUTH="false"

ETCD_PEER_TRUSTED_CA_FILE="/etc/etcd/ssl/etcd-ca.pem"

#ETCD_PEER_AUTO_TLS="false"

#

#[Logging]

#ETCD_DEBUG="false"

#ETCD_LOG_PACKAGE_LEVELS=""

#ETCD_LOG_OUTPUT="default"

#

#[Unsafe]

#ETCD_FORCE_NEW_CLUSTER="false"

#

#[Version]

#ETCD_VERSION="false"

#ETCD_AUTO_COMPACTION_RETENTION="0"

#

#[Profiling]

#ETCD_ENABLE_PPROF="false"

#ETCD_METRICS="basic"

#

#[Auth]

#ETCD_AUTH_TOKEN="simple"

EOF

chown -R etcd.etcd /etc/etcd

systemctl enable etcd

systemctl start etcd

etcd2主机安装并启动etcd:

yum install -y etcd

cat << EOF > /etc/etcd/etcd.conf

#[Member]

#ETCD_CORS=""

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

#ETCD_WAL_DIR=""

ETCD_LISTEN_PEER_URLS="https://192.168.2.181:2380"

ETCD_LISTEN_CLIENT_URLS="https://127.0.0.1:2379,https://192.168.2.181:2379"

#ETCD_MAX_SNAPSHOTS="5"

#ETCD_MAX_WALS="5"

ETCD_NAME="etcd2"

#ETCD_SNAPSHOT_COUNT="100000"

#ETCD_HEARTBEAT_INTERVAL="100"

#ETCD_ELECTION_TIMEOUT="1000"

#ETCD_QUOTA_BACKEND_BYTES="0"

#ETCD_MAX_REQUEST_BYTES="1572864"

#ETCD_GRPC_KEEPALIVE_MIN_TIME="5s"

#ETCD_GRPC_KEEPALIVE_INTERVAL="2h0m0s"

#ETCD_GRPC_KEEPALIVE_TIMEOUT="20s"

#

#[Clustering]

ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.2.181:2380"

ETCD_ADVERTISE_CLIENT_URLS="https://127.0.0.1:2379,https://192.168.2.181:2379"

#ETCD_DISCOVERY=""

#ETCD_DISCOVERY_FALLBACK="proxy"

#ETCD_DISCOVERY_PROXY=""

#ETCD_DISCOVERY_SRV=""

ETCD_INITIAL_CLUSTER="etcd1=https://192.168.2.207:2380,etcd2=https://192.168.2.181:2380,etcd3=https://192.168.2.182:2380"

ETCD_INITIAL_CLUSTER_TOKEN="BigBoss"

#ETCD_INITIAL_CLUSTER_STATE="new"

#ETCD_STRICT_RECONFIG_CHECK="true"

#ETCD_ENABLE_V2="true"

#

#[Proxy]

#ETCD_PROXY="off"

#ETCD_PROXY_FAILURE_WAIT="5000"

#ETCD_PROXY_REFRESH_INTERVAL="30000"

#ETCD_PROXY_DIAL_TIMEOUT="1000"

#ETCD_PROXY_WRITE_TIMEOUT="5000"

#ETCD_PROXY_READ_TIMEOUT="0"

#

#[Security]

ETCD_CERT_FILE="/etc/etcd/ssl/etcd.pem"

ETCD_KEY_FILE="/etc/etcd/ssl/etcd-key.pem"

#ETCD_CLIENT_CERT_AUTH="false"

ETCD_TRUSTED_CA_FILE="/etc/etcd/ssl/etcd-ca.pem"

#ETCD_AUTO_TLS="false"

ETCD_PEER_CERT_FILE="/etc/etcd/ssl/etcd.pem"

ETCD_PEER_KEY_FILE="/etc/etcd/ssl/etcd-key.pem"

#ETCD_PEER_CLIENT_CERT_AUTH="false"

ETCD_PEER_TRUSTED_CA_FILE="/etc/etcd/ssl/etcd-ca.pem"

#ETCD_PEER_AUTO_TLS="false"

#

#[Logging]

#ETCD_DEBUG="false"

#ETCD_LOG_PACKAGE_LEVELS=""

#ETCD_LOG_OUTPUT="default"

#

#[Unsafe]

#ETCD_FORCE_NEW_CLUSTER="false"

#

#[Version]

#ETCD_VERSION="false"

#ETCD_AUTO_COMPACTION_RETENTION="0"

#

#[Profiling]

#ETCD_ENABLE_PPROF="false"

#ETCD_METRICS="basic"

#

#[Auth]

#ETCD_AUTH_TOKEN="simple"

EOF

chown -R etcd.etcd /etc/etcd

systemctl enable etcd

systemctl start etcd

etcd3主机安装并启动etcd:

yum install -y etcd

cat << EOF > /etc/etcd/etcd.conf

#[Member]

#ETCD_CORS=""

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

#ETCD_WAL_DIR=""

ETCD_LISTEN_PEER_URLS="https://192.168.2.182:2380"

ETCD_LISTEN_CLIENT_URLS="https://127.0.0.1:2379,https://192.168.2.182:2379"

#ETCD_MAX_SNAPSHOTS="5"

#ETCD_MAX_WALS="5"

ETCD_NAME="etcd3"

#ETCD_SNAPSHOT_COUNT="100000"

#ETCD_HEARTBEAT_INTERVAL="100"

#ETCD_ELECTION_TIMEOUT="1000"

#ETCD_QUOTA_BACKEND_BYTES="0"

#ETCD_MAX_REQUEST_BYTES="1572864"

#ETCD_GRPC_KEEPALIVE_MIN_TIME="5s"

#ETCD_GRPC_KEEPALIVE_INTERVAL="2h0m0s"

#ETCD_GRPC_KEEPALIVE_TIMEOUT="20s"

#

#[Clustering]

ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.2.182:2380"

ETCD_ADVERTISE_CLIENT_URLS="https://127.0.0.1:2379,https://192.168.2.182:2379"

#ETCD_DISCOVERY=""

#ETCD_DISCOVERY_FALLBACK="proxy"

#ETCD_DISCOVERY_PROXY=""

#ETCD_DISCOVERY_SRV=""

ETCD_INITIAL_CLUSTER="etcd1=https://192.168.2.207:2380,etcd2=https://192.168.2.181:2380,etcd3=https://192.168.2.182:2380"

ETCD_INITIAL_CLUSTER_TOKEN="BigBoss"

#ETCD_INITIAL_CLUSTER_STATE="new"

#ETCD_STRICT_RECONFIG_CHECK="true"

#ETCD_ENABLE_V2="true"

#

#[Proxy]

#ETCD_PROXY="off"

#ETCD_PROXY_FAILURE_WAIT="5000"

#ETCD_PROXY_REFRESH_INTERVAL="30000"

#ETCD_PROXY_DIAL_TIMEOUT="1000"

#ETCD_PROXY_WRITE_TIMEOUT="5000"

#ETCD_PROXY_READ_TIMEOUT="0"

#

#[Security]

ETCD_CERT_FILE="/etc/etcd/ssl/etcd.pem"

ETCD_KEY_FILE="/etc/etcd/ssl/etcd-key.pem"

#ETCD_CLIENT_CERT_AUTH="false"

ETCD_TRUSTED_CA_FILE="/etc/etcd/ssl/etcd-ca.pem"

#ETCD_AUTO_TLS="false"

ETCD_PEER_CERT_FILE="/etc/etcd/ssl/etcd.pem"

ETCD_PEER_KEY_FILE="/etc/etcd/ssl/etcd-key.pem"

#ETCD_PEER_CLIENT_CERT_AUTH="false"

ETCD_PEER_TRUSTED_CA_FILE="/etc/etcd/ssl/etcd-ca.pem"

#ETCD_PEER_AUTO_TLS="false"

#

#[Logging]

#ETCD_DEBUG="false"

#ETCD_LOG_PACKAGE_LEVELS=""

#ETCD_LOG_OUTPUT="default"

#

#[Unsafe]

#ETCD_FORCE_NEW_CLUSTER="false"

#

#[Version]

#ETCD_VERSION="false"

#ETCD_AUTO_COMPACTION_RETENTION="0"

#

#[Profiling]

#ETCD_ENABLE_PPROF="false"

#ETCD_METRICS="basic"

#

#[Auth]

#ETCD_AUTH_TOKEN="simple"

EOF

chown -R etcd.etcd /etc/etcd

systemctl enable etcd

systemctl start etcd

检查集群状态:

#在etcd1节点执行

etcdctl --endpoints "https://127.0.0.1:2379" --ca-file=/etc/etcd/ssl/etcd-ca.pem

--cert-file=/etc/etcd/ssl/etcd.pem --key-file=/etc/etcd/ssl/etcd-key.pem cluster-health

现在已经成功搭建了环境以及etcd,如何搭建kubernetes请看下回。

kubernetes安装

相关知识

Kubernetes安装
探索高效 Kubernetes 管理:鱼缸中的kubectl助手 —— fish
通过kubeadmin安装三节点k8s
Kubernetes Pod配置MySQL环境变量实战指南
使用Kubernetes最常见的10个错误
Kubernetes有状态应用管理——PetSet
kuborad 部署mysql
使用Pod创建MySQL数据库实例(用pod创建mysql)
Linux 环境下 NFS 服务安装及配置使用
养了27年的狗

网址: Kubernetes安装 https://m.mcbbbk.com/newsview1340216.html

所属分类:萌宠日常
上一篇: Jenkins01环境搭建
下一篇: 中山市生态环境局网站