目录

一.环境准备

二.部署etcd集群

一.环境准备

 先准备3台主机,首先搭建Master单节点集群。
 因为 Master 是整个 K8S 集群的大脑,没有 Master 接下来的每一步操作都会变得不可控。

 同时我们需要在节点上同时搭建 etcd 存储集群:
 在生产环境中会使用 etcd 集群做高可用,它的数目必须是3台或3台以上的奇数台。
 etcd 存储单独部署可以节约存储,和 Master 放在一起方便内网通信节约机器。
 只要能保证内网环境稳定和服务器数量充足,一般都会单独部署。

  • K8S 集群 Master01:192.168.100.137:kube-apiserver、kube-controller-manager、kube-scheduler、etcd
  • K8S 集群 Node01:192.168.100.138:kubelet、kube-proxy、docker、flannel、etcd
  • K8S 集群 Node02:192.168.100.139:kubelet、kube-proxy、docker、flannel、etcd

常见的k8s部署方式

Mini kube

Minikube是一个工具,可以在本地快速运行一个单节点微型K8s,仅用于学习预览K8s的一些特性使用
部署地址: https: / /kubernetes.io/docs/setup/minikube

Kubeadmin

Kubeadmin也是一个工具,提供kubeadm init和kubeadm join,用于快速部署K8S集群,相对简单
https: / /kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/

二进制安装部署

生产首选,从官方下载发行版的二进制包,手动部署每个组件和自签TLS证书,组成K8s集群,新手推荐
https: / /github.com/kubernetes/kubernetes/releases

小结:kubeadm降低部署门槛,但屏蔽了很多细节,遇到问题很难排查,如果想更容易可控,推荐使用二进制包部署kubernetes集群,虽然手动部署麻烦点,期间可以学习很多工作原理,也利于后期维护。

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

关闭selinux

setenforce 0
sed -i 's/enforcing/disabled/'  /etc/selinux/config

关闭swap

swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab

根据规划设置主机名 

hostnamectl  set-hostname master01
hostnamectl  set-hostname node01
hostnamectl  set-hostname node02

 在master添加hosts

cat >>  /etc/hosts <<EOF
192.168.100.136 master01
192.168.100.137 node01
192.168.100.138 node02

 将桥接的IPv4流量传递到iptables的链

cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF

 时间同步

yum -y install ntpdate
ntpdate time.windows.com

二.部署etcd集群

注意:这里就不在单独的服务器上部署,直接部署在各节点上,节省资源

1.etcd目前默认使用2379端口提供HTTP API服务,2380端口和peer通信(这两个端口已经被TAMA(互联网数字分配机构)官方预留给etced)。即etcd默认使用2379端口对外为客户端提供通讯,使用端口2380来进行服务器间内部通讯
2.etcd在生产环境中一般推荐集群方式部署。由于etcd的leader选举机制,要求至少为3台或以上的奇数台
3.etcd作为服务发现系统,有以下的特点:
• 简单 安装配置简单,而且提供了HTTP API进行交互,使用也很简单
• 安全: 支持SSL证书验证
• 快速: 单实例支持每秒2k+读操作
• 可靠: 采用raft算法实现分布式系统数据的可用性和一致性
==========================================================
##准备签发证书环境
CFSSL是CloudFlare公司开源的一款PKI/TLS工具。CESSL 包含一个命令行工具和一个用于签名、验证和捆绑TLS证书的HTTP API服务。使用Go语言编写。
CFSSL使用配置文件生成证书,因此自签之前,需要生成它识别的json 格式的配置文件,CFSSL 提供了方便的命令行生成配置文件。
CFSSL用来为etcd提供TLS证书,它支持签三种类型的证书:
1、client证书,服务端连接客户端时携带的证书,用于客户端验证服务端身份,如kube-apiserver 访问etcd;
2、server证书,客户端连接服务端时携带的证书,用于服务端验证客户端身份,如etcd对外提供服务:
3、peer证书,相互之间连接时使用的证书,如etcd节点之间进行验证和通信。
这里全部都使用同一套证书认证。

1. 载证书制作工具

在 master01 节点上操作下载证书制作工具

wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -O /usr/local/bin/cfssl
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -O /usr/local/bin/cfssljson
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -O /usr/local/bin/cfssl-certinfo
或
curl -L https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -o /usr/local/bin/cfssl
curl -L https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -o /usr/local/bin/cfssljson
curl -L https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -o /usr/local/bin/cfssl-certinfo chmod +x /usr/local/bin/cfssl*                       #提前下载好拉入/usr/local/bin/目录并授权
字段解析
cfssl∶证书签发的工具命令
cfssljson∶将 cfssl 生成的证书(json格式)变为文件承载式证书
cfssl-certinfo∶验证证书的信息cfssl-certinfo-cert <证书名称>                        #查看证书的信息
#创建k8s工作目录
mkdir /opt/k8s
cd /opt/k8s/#上传 etcd-cert.sh 和 etcd.sh 到 /opt/k8s/ 目录中
chmod +x etcd-cert.sh etcd.sh#创建用于生成CA证书、etcd 服务器证书以及私钥的目录
mkdir /opt/k8s/etcd-cert
mv etcd-cert.sh etcd-cert/
cd /opt/k8s/etcd-cert/
./etcd-cert.sh                                       #生成CA证书、etcd 服务器证书以及私钥

2. 利用etcd-cert.sh生成CA证书、etcd服务器证书以及私钥

1.创建k8s.工作目录
mkdir /opt/k8s
cd /opt/k8s/2.mkdir /opt/k8s/etcd-cert          #创建用于生成CA证书、etcd服务器证书以及私钥的目录
cd /opt/k8s/etcd-cert
vim etcd-cert.sh
----------------------------------------------------------
cat > ca-config.json <<EOF         #CA证书配置文件
{"signing": {                 #键名称"default": {"expiry": "87600h"            #证书有效期(10年)},"profiles": {              #简介"www": {                   #名称"expiry": "87600h","usages": [             #使用方法"signing",               #键"key encipherment",         #密钥验证(密钥验证要设置在CA证书中)"server auth",          #服务器端验证"client auth"          #客户端验证]}}}
}
EOF
cat > ca-csr.json <<EOF                #CA签名
{"CN": "etcd CA",               #CA签名为etcd指定(三个节点均需要)"key": {"algo": "rsa",             #使用rsa非对称密钥的形式"size": 2048                #密钥长度为2048},"names": [                    #在证书中定义信息(标准格式){"C": "CN",                #名称"L": "Beijing",      "ST": "Beijing"     }]
}
EOF
cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
cat > server-csr.json <<EOF            #服务器端的签名
{"CN": "etcd","hosts": [                  #定义三个节点的IP地址"192.168.163.141","192.168.163.132","192.168.163.131"],"key": {"algo": "rsa","size": 2048},"names": [{"C": "CN","L": "BeiJing","ST": "BeiJing"}]
}
EOF
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=www server-csr.json | cfssljson -bare server     #cfssl 为证书制作工具
----------------------------------------------------------
chmod +x etcd-cert.sh
./etcd-cert.sh 

3. 利用etcd.sh启动etcd

1)解压etcd包

#etcd二进制包地址: https://github.com/etcd-io/etcd/releases
1.上传etcd-v3.3.10-1inux-amd64.tar.gz 到/opt/k8s/目录中,解压etcd 压缩包
2.cd /opt/k8s/
tar zxvf etcd-v3.3.10-linux-amd64.tar.gz
3.1s etcd-v3.3.10-linux-amd64
Documentation etcd etcdctl README-etcdctl.md README.md
READMEv2-etcdctl.md
==========================================================
etcd就是etcd服务的启动命令,后面可跟各种启动参数
etcdct1主要为etcd服务提供了命令行操作
==========================================================

 2)创建用于存放etcd配置文件,命令文件,证书的目录

mkdir -p /opt/etcd/{cfg,bin,ssl}
mv /opt/k8s/etcd-v3.3.10-linux-amd64/etcd /opt/etcd/bin/
mv /opt/k8s/etcd-v3.3.10-linux-amd64/etcdctl /opt/etcd/bin/
cp /opt/k8s/etcd-cert/*.pem /opt/etcd/ssl/

3)编写etcd.sh启动etcd(先起一台,再scp) 

cd /opt/k8s
vim etcd.sh
----------------------------------------------------------
#!/bin/bash
#以下为使用格式:etcd名称 当前etcd的IP地址+完整的集群名称和地址
# example: ./etcd.sh etcd01 192.168.100.136 etcd02=https://192.168.100.137:2380,etcd03=https://192.168.100.138:2380
ETCD_NAME=$1                       #位置变量1:etcd节点名称
ETCD_IP=$2                     #位置变量2:节点地址
ETCD_CLUSTER=$3                        #位置变量3:集群
WORK_DIR=/opt/etcd                 #指定工作目录
cat <<EOF >$WORK_DIR/cfg/etcd              #在指定工作目录创建ETCD的配置文件
#[Member]
ETCD_NAME="${ETCD_NAME}"             #etcd名称
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://${ETCD_IP}:2380"      #etcd IP地址:2380端口。用于集群之间通讯
ETCD_LISTEN_CLIENT_URLS="https://${ETCD_IP}:2379"    #etcd IP地址:2379端口,用于开放给外部客户端通讯
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://${ETCD_IP}:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://${ETCD_IP}:2379" #对外提供的url使用https的协议进行访问
ETCD_INITIAL_CLUSTER="etcd01=https://${ETCD_IP}:2380,${ETCD_CLUSTER}"       #多路访问
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"        #tokens 令牌环名称:etcd-cluster
ETCD_INITIAL_CLUSTER_STATE="new"         #状态,重新创建
EOF
cat <<EOF >/usr/lib/systemd/system/etcd.service        #定义ectd的启动脚本
[Unit]                              #基本项
Description=Etcd Server                    #类似为 etcd 服务
After=network.target                   #vu癌症
After=network-online.target
Wants=network-online.target
[Service]                       #服务项
Type=notify
EnvironmentFile=${WORK_DIR}/cfg/etcd   #etcd文件位置
ExecStart=${WORK_DIR}/bin/etcd \           #准启动状态及以下的参数
--name=\${ETCD_NAME} \
--data-dir=\${ETCD_DATA_DIR} \
--listen-peer-urls=\${ETCD_LISTEN_PEER_URLS} \
--listen-client-urls=\${ETCD_LISTEN_CLIENT_URLS},http://127.0.0.1:2379 \
--advertise-client-urls=\${ETCD_ADVERTISE_CLIENT_URLS} \ #以下为群集内部的设定
--initial-advertise-peer-urls=\${ETCD_INITIAL_ADVERTISE_PEER_URLS} \
--initial-cluster=\${ETCD_INITIAL_CLUSTER} \
--initial-cluster-token=\${ETCD_INITIAL_CLUSTER_TOKEN} \   #群集内部通信,也是使用的令牌,为了保证安全(防范中间人窃取)
--initial-cluster-state=new \
--cert-file=${WORK_DIR}/ssl/server.pem \       #证书相关参数
--key-file=${WORK_DIR}/ssl/server-key.pem \
--peer-cert-file=${WORK_DIR}/ssl/server.pem \
--peer-key-file=${WORK_DIR}/ssl/server-key.pem \
--trusted-ca-file=${WORK_DIR}/ssl/ca.pem \
--peer-trusted-ca-file=${WORK_DIR}/ssl/ca.pem
Restart=on-failure
LimitNOFILE=65536                  #开放最多的端口号
[Install]
WantedBy=multi-user.target             #进行启动
EOF
systemctl daemon-reload                 #参数重载
systemctl enable etcd
systemctl restart etcd
----------------------------------------------------------
chmod +x etcd.sh
主机master01:./etcd.sh etcd01 192.168.100.136 etcd02=https://192.168.100.137:2380,etcd03=https://192.168.100.138:2380    #执行脚本另外打开一个终端窗口查看etcd进程是否正常
ps -ef | grep etcd//把etcd相关证书文件和命令文件全部拷贝到另外两个etcd集群节点
scp -r /opt/etcd/ root@192.168.1100.137:/opt/
scp -r /opt/etcd/ root@192.168.1100.138:/opt///把etcd服务管理文件拷贝到另外两个etcd集群节点
scp /usr/lib/systemd/system/etcd.service root@192.168.100.137:/usr/lib/systemd/system/
scp /usr/lib/systemd/system/etcd.service root@192.168.100.138:/usr/lib/systemd/system/修改vim /opt/etcd/cfg/etcd文件,每一台主机都有自己的etc编号和ip,除了集群那行一致,其他都要修改成本机ip和etc编号再次systemctl daemon-reload                   #参数重载
systemctl enable etcd
systemctl restart etcd

4. 在master01节点上测试健康检查

1.ln -s /opt/etcd/bin/etcd* /usr/local/bin
2.检查etcd群集状态
cd /opt/etcd/ssl
/opt/etcd/bin/etcdctl --cacert=/opt/etcd/ssl/ca.pem --cert=/opt/etcd/ssl/server.pem --key=/opt/etcd/ssl/server-key.pem --endpoints="https://192.168.100.136:2379,https://192.168.100.137:2379,https://192.168.100.138:2379" endpoint health --write-out=table--cert-file:识别HTTPS端使用sSL证书文件
--key-file: 使用此SSL密钥文件标识HTTPS客户端
-ca-file:使用此CA证书验证启用https的服务器的证书
--endpoints:集群中以逗号分隔的机器地址列表
cluster-health:检查etcd集群的运行状况
==========================================================
3.切换到etcd3版本查看集群节点状态和成员列表
export ETCDCTL_API=3
#v2和v3命令略有不同,etcd2 和etcd3也是不兼容的,默认是v2版本
etcdctl --write-out=table endpoint status
etcdctl --write-out=table member list
export ETCDCTL_API=2
#再切回v2版本
检查etcd群集状态
ETCDCTL_API=3 /opt/etcd/bin/etcdctl --cacert=/opt/etcd/ssl/ca.pem --cert=/opt/etcd/ssl/server.pem --key=/opt/etcd/ssl/server-key.pem --endpoints="https://192.168.100.136:2379,https://192.168.100.137:2379,https://192.168.100.138:2379" endpoint health --write-out=tableETCDCTL_API=3 /opt/etcd/bin/etcdctl --cacert=/opt/etcd/ssl/ca.pem --cert=/opt/etcd/ssl/server.pem --key=/opt/etcd/ssl/server-key.pem --endpoints="https://192.168.100.136:2379,https://192.168.100.137:2379,https://192.168.100.138:2379" --write-out=table member list

3. 部署docker引擎(两台node节点上部署) 

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.iosystemctl start docker.service
systemctl enable docker.service

部署 Master 组件 

//在 master01 节点上操作
#上传 master.zip 和 k8s-cert.sh 到 /opt/k8s 目录中,解压 master.zip 压缩包
cd /opt/k8s/
unzip master.zip
chmod +x *.shmkdir -p /opt/kubernetes/{bin,cfg,ssl,logs}
#创建用于生成CA证书、相关组件的证书和私钥的目录
mkdir /opt/k8s/k8s-cert
mv /opt/k8s/k8s-cert.sh /opt/k8s/k8s-cert
cd /opt/k8s/k8s-cert/
./k8s-cert.shls *pem
admin-key.pem  apiserver-key.pem  ca-key.pem  kube-proxy-key.pem
admin.pem      apiserver.pem      ca.pem      kube-proxy.pemcp ca*pem apiserver*pem /opt/kubernetes/ssl/

#上传 kubernetes-server-linux-amd64.tar.gz 到 /opt/k8s/ 目录中,解压 kubernetes 压缩包

cd /opt/k8s/
tar zxvf kubernetes-server-linux-amd64.tar.gzcd /opt/k8s/kubernetes/server/bin
cp kube-apiserver kubectl kube-controller-manager kube-scheduler /opt/kubernetes/bin/
ln -s /opt/kubernetes/bin/* /usr/local/bin/

#创建 bootstrap token 认证文件,apiserver 启动时会调用,然后就相当于在集群内创建了一个这个用户,接下来就可以用 RBAC 给他授权

cd /opt/k8s/
vim token.sh
#!/bin/bash
#获取随机数前16个字节内容,以十六进制格式输出,并删除其中空格
BOOTSTRAP_TOKEN=$(head -c 16 /dev/urandom | od -An -t x | tr -d ' ')
#生成 token.csv 文件,按照 Token序列号,用户名,UID,用户组 的格式生成
cat > /opt/kubernetes/cfg/token.csv <<EOF
${BOOTSTRAP_TOKEN},kubelet-bootstrap,10001,"system:kubelet-bootstrap"
EOFchmod +x token.sh
./token.shcat /opt/kubernetes/cfg/token.csvcd /opt/k8s/
./apiserver.sh 192.168.100.136 https://192.168.100.136:2379,https://192.168.100.137 :2379,https://192.168.100.138:2379ps aux | grep kube-apiservernetstat -natp | grep 6443   #安全端口6443用于接收HTTPS请求,用于基于Token文件或客户端证书等认证cd /opt/k8s/

#启动 scheduler 服务,#启动 controller-manager 服务

#启动 scheduler 服务
./scheduler.sh
ps aux | grep kube-scheduler#启动 controller-manager 服务
./controller-manager.sh
ps aux | grep kube-controller-manager#生成kubectl连接集群的证书
vim admin.sh
./admin.shkubectl create clusterrolebinding cluster-system-anonymous --clusterrole=cluster-admin --user=system:anonymous

#通过kubectl工具查看当前集群组件状态

kubectl get cs
NAME                 STATUS    MESSAGE             ERROR
controller-manager   Healthy   ok
scheduler            Healthy   ok
etcd-2               Healthy   {"health":"true"}
etcd-1               Healthy   {"health":"true"}
etcd-0               Healthy   {"health":"true"}  #查看版本信息
kubectl version

三.部署 Worker Node 组件

//在所有 node 节点上操作
#创建kubernetes工作目录
mkdir -p /opt/kubernetes/{bin,cfg,ssl,logs}#上传 node.zip 到 /opt 目录中,解压 node.zip 压缩包,获得kubelet.sh、proxy.sh
cd /opt/
unzip node.zip
chmod +x kubelet.sh proxy.sh部署node组件
======在master1 节点上操作======
//把kubelet、 kube-proxy拷贝到node 节点
cd /opt/k8s/kubernetes/server/bin
scp kubelet kube-proxy root@192.168.100.137:/opt/kubernetes/bin/
scp kubelet kube-proxy root@192.168.100.138:/opt/kubernetes/bin/

#上传 kubeconfig.sh 文件到 /opt/k8s/kubeconfig 目录中,生成 kubeconfig 的配置文件
mkdir /opt/k8s/kubeconfigcd /opt/k8s/kubeconfig
chmod +x kubeconfig.sh
./kubeconfig.sh 192.168.100.136 /opt/k8s/k8s-cert/scp bootstrap.kubeconfig kube-proxy.kubeconfig root@192.168.100.137:/opt/kubernetes/cfg/
scp bootstrap.kubeconfig kube-proxy.kubeconfig root@192.168.100.138:/opt/kubernetes/cfg/#RBAC授权,使用户 kubelet-bootstrap 能够有权限发起 CSR 请求
kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap

======在node1节点上操作======
//使用kubelet.sh脚本启动kubelet服务
cd /opt/
chmod +x kubelet.sh
./kubelet.sh 192.168.100.137//检查kubelet服务启动
ps aux | grep kubelet
//此时还没有生成证书
ls /opt/kubernetes/ssl/

======在master1 节点上操作======
//检查到node1 节点的kubelet 发起的CSR请求,Pending 表示等待集群给该节点签发证书.
kubectl get csr//通过CSR请求
kubectl certificate approve node-csr-NOI-9vufTLIqJgMWq4fHPNPHKbjCX1DGHptj7FqTa8A//再次查看CSR请求状态,Approved, Issued表示已授权CSR请求并签发证书
kubectl get csr//查看群集节点状态,成功加入node1节点
kubectl get nodes

======在node1节点上操作======
//自动生成了证书和kubelet.kubeconfig 文件
ls /opt/kubernetes/cfg/kubelet.kubeconfig
ls /opt/kubernetes/ssl///加载ip_vs模块
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F
filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done//使用proxy.sh脚本启动proxy服务
cd /opt/
chmod +x proxy.sh
./proxy.sh 192.168.100.137systemctl status kube-proxy.service 

======node2 节点部署======//在node1 节点上将kubelet.sh、 proxy.sh 文件拷贝到node2 节点
cd /opt/
scp kubelet.sh proxy.sh root@192.168.80.12:/opt///node2 节点
//使用kubelet.sh脚本启动kubelet服务
cd /opt/
chmod +x kubelet.sh
./kubelet.sh 192.168.80.12//在master1 节点上操作,检查到node2 节点的kubelet 发起的CSR请求,Pending 表示等待集群给该节点签发证书.
kubectl get csr//通过CSR请求
kubect1 certificate approve node-csr-NOI-9vufTLIqJgMWq4fHPNPHKbjCX1DGHptj7FqTa8A//再次查看CSR请求状态,Approved, Issued表示已授权CSR请求并签发证书
kubectl get csr//查看群集节点状态,成功加入node1节点
kubectl get nodes//在node2 节点 加载ip_vs模块
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F
filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done//使用proxy.sh脚本启动proxy服务
cd /opt/
chmod +x proxy.sh
./proxy.sh 192.168.80.12systemctl status kube-proxy.service 

 ------------------------------ 部署网络组件 ------------------------------
---------- 部署 flannel ----------

//在 node01 节点上操作
#上传 cni-plugins-linux-amd64-v0.8.6.tgz 和 flannel.tar 到 /opt 目录中
cd /opt/
docker load -i flannel.tarmkdir /opt/cni/bin
tar zxvf cni-plugins-linux-amd64-v0.8.6.tgz -C /opt/cni/bin//在 master01 节点上操作
#上传 kube-flannel.yml 文件到 /opt/k8s 目录中,部署 CNI 网络
cd /opt/k8s
kubectl apply -f kube-flannel.yml kubectl get pods -n kube-system
NAME                    READY   STATUS    RESTARTS   AGE
kube-flannel-ds-hjtc7   1/1     Running   0          7skubectl get nodes
NAME            STATUS   ROLES    AGE   VERSION
192.168.80.11   Ready    <none>   81m   v1.20.11

K8S二进制部署---单节点master相关推荐

  1. kubernetes (k8s)的二进制部署单节点(etcd和flannel网络)

    文章目录 1 常见的k8s部署方式 2 环境准备 2.1 拓扑 2.2 所有主机关闭防火墙,selinux,swap 2.3 所有主机配置主机名,并再maser上做主机映射 2.4 所有主机将桥接的I ...

  2. K8S二进制部署(多节点)

    目 录 前言 环境准备 一.Master02 节点部署 1.在Master01节点上拷贝证书文件及服务管理文件 2.修改Apiserver配置文件 3.启动服务 4.查看Node节点状态 二.负载均衡 ...

  3. 基于VMware采用kubeadm方式部署单节点k8s集群(练习使用)

    1.虚拟机安装centos7.6 1.1 导入镜像 这里选择的版本是:CentOS-7-x86_64-DVD-2207-02.iso(即centos7.6的镜像) 镜像下载地址: http://mir ...

  4. 【云原生】Kubrenetes二进制--单节点Master集群

    单节点Master集群 一.Kubernetes概述 1.Master组件 2.Node组件 二.Kubernetes核心概念 1.Pod概述 2.Pod控制器 3.Label标签 4.Label选择 ...

  5. K8S部署单节点zookeeper服务

    要使用Kubernetes (K8s) 部署单节点Zookeeper服务,需要执行以下步骤: 0.创建Zookeeper镜像 该镜像包含Zookeeper二进制文件和配置文件,使用Dockerfile ...

  6. k8s安装sqlite3_kubernetes环境部署单节点redis数据库的方法

    kubernetes部署redis数据库(单节点) redis简介 Redis 是我们常用的非关系型数据库,在项目开发.测试.部署到生成环境时,经常需要部署一套 Redis 来对数据进行缓存.这里介绍 ...

  7. 【原】docker部署单节点consul

    docker下部署单节点的consul,最重要的是在run consul时,配置-bootstrap-expect=1 docker run --name consul1 -d -p 5902:850 ...

  8. 【重要】kubernetes二进制部署单master节点

    目录 1.安装要求 2.安装规划 3.1.分步骤操作 3.2.一键执行脚本 4.1.安装cfssl证书生成工具 4.2.创建认证中心(根CA中心) 4.3.使用自签CA签发Etcd证书 4.4.部署E ...

  9. kubernetes二进制部署单master节点

    目录 1.安装要求 2.安装规划 3.1.分步骤操作 3.2.一键执行脚本 4.1.安装cfssl证书生成工具 4.2.创建认证中心(根CA中心) 4.3.使用自签CA签发Etcd证书 4.4.部署E ...

最新文章

  1. 作为互联网流量入口,CDN日志大数据你该怎么玩?
  2. 从后端获取数据然后在页面处理技巧
  3. 百度地图 截图java_[Java教程]百度地图API 简单使用
  4. Spring 事务 状态信息的创建、回滚、清理、提交
  5. 安装详细步骤win7_windows安装器怎么安装原版win7【详细教程】
  6. Atitit 前端技术体系 目录 1. 基础系列 2 1.1. NUI CLI GUI 2 1.2. MVC WEBFORM PAGE模式 stage模式 2 2. 技术应用系列 2 2.
  7. HDUacm2095
  8. java编程自学app_Java编程自学软件
  9. [转载]GRADS画图
  10. 2019年南京大学计算机考研复试机试真题
  11. weex的组件 web的使用(结合webview模块)
  12. 2022年建筑电工(建筑特殊工种)考试练习题及模拟考试
  13. SwiftUI学习笔记-【列表】
  14. python最大分词_北大开源了Python中文分词工具包,准确度远超Jieba
  15. 大数据可视化坐标轴的定制与绘制3D图表及统计地图
  16. 避难所Android闪退,iOS/安卓版《辐射:避难所》Fallout Shelter攻略:闪退进不去解决办法...
  17. mysql字段掩码_什么叫掩码
  18. java.util.StringTokenizer
  19. 小程序云开发如何多表联查三表联查?
  20. Python 最近两条好消息:①TIOBE排名超过C和Java②新版本发布3.10.0,还有今天刚发布的《What’s New in Python(2021.10.15)》

热门文章

  1. Android Netty的使用-入门指南
  2. angular : 自定义组件双向绑定 [(ngModel)]
  3. Win硬件 - 西部数据绿盘、蓝盘、黑盘、红盘和紫盘有什么区别?
  4. 【数据库】用户管理---君权神授
  5. 几道经典的SQL笔试题目(有答案)
  6. 启用Win10家庭版的远程桌面服务端
  7. msvcr120.dll WIN7 64位/32位丢失怎么办
  8. 基于Hough变换的人眼虹膜定位
  9. Geospatial-地理空间
  10. 短信验证码、身份证实名、手机三要素实名三步走,手把手教你API接口调用,示例可使用