前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使用 kubeadm 部署 kubernetes 1.13.1

使用 kubeadm 部署 kubernetes 1.13.1

作者头像
tanmx
发布于 2019-01-03 02:18:21
发布于 2019-01-03 02:18:21
2.8K00
代码可运行
举报
运行总次数:0
代码可运行

最近有时间重新学习 k8s。k8s 的安装比之前简单了许多,本文介绍如何使用 kubeadm 部署 kubernetns 1.13.1

前期准备

环境概览

准备了3台机器,有一台master,两台node,主机名及IP如下:

主机名

IP地址

k8s-master

172.20.6.116

k8s-node1

172.20.6.117

k8s-node2

172.20.6.118

系统设置

1. 修改三台机器的主机名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# hostnamectl set-hostname XXXX

2. 设置本地解析

编辑三台机器的 hosts 文件加入以下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# vim /etc/hosts

172.20.6.116 k8s-master
172.20.6.117 k8s-node1
172.20.6.118 k8s-node2

3. 关闭防火墙

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# systemctl disable firewalld

4. 关闭selinux

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config

5. 关闭NetworkManager

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# systemctl disable NetworkManager

6. 设置时间同步

所有机器上安装 chrony

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# yum install -y chrony

设置时间同步(172.50.10.16为我本地的 NTP 服务器,也可以直接使用阿里云的NTP: time1.aliyun.com)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# vim /etc/chrony.conf

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 172.50.10.16 iburst

启动服务并同步时间

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# systemctl enable chronyd && systemctl restart chronyd
#  chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 172.50.10.16                  3   6    17    13   +103us[  +12us] +/-   24ms

星号代表同步成功

7. 重启所有主机

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# reboot

部署 kubernetes

安装 docker-ce(所有主机 )

1. 下载 docker-ce 源

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo

2. 配置 docker-ce 使用国内源

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

3. 安装docker-ce

由于 kubernetes 1.13.1 只在 docker-ce 18.06以下测试过,所以指定安装的 docker-ce 版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# yum install docker-ce-18.06.1.ce-3.el7

4. 启动并设置开机自启

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# systemctl enable docker.service && systemctl start docker.service

安装 kubeadm, kubelet and kubectl(所有主机)

1. 配置 kubeadm 的源

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

2. 安装 kubeadm, kubelet and kubectl

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# yum install -y kubelet kubeadm kubectl

3. 启动并设置开机自启

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# systemctl enable kubelet && systemctl start kubelet

4. 调整内核参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

# sysctl --system

初始化 k8s (master 节点)

1. 导入镜像包

由于不可描述的原因,无法拉取k8s的镜像,所以我准备了一份离线的数据,需要在所有节点导入,下载地址:kube.tar

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# docker load -i kube.tar

查看导入后的镜像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# docker images

REPOSITORY                           TAG                 IMAGE ID            CREATED             SIZE
k8s.gcr.io/kube-proxy                v1.13.1             fdb321fd30a0        2 weeks ago         80.2MB
k8s.gcr.io/kube-controller-manager   v1.13.1             26e6f1db2a52        2 weeks ago         146MB
k8s.gcr.io/kube-apiserver            v1.13.1             40a63db91ef8        2 weeks ago         181MB
k8s.gcr.io/kube-scheduler            v1.13.1             ab81d7360408        2 weeks ago         79.6MB
k8s.gcr.io/coredns                   1.2.6               f59dcacceff4        7 weeks ago         40MB
k8s.gcr.io/etcd                      3.2.24              3cab8e1b9802        3 months ago        220MB
quay.io/coreos/flannel               v0.10.0-amd64       f0fad859c909        11 months ago       44.6MB
k8s.gcr.io/pause                     3.1                 da86e6ba6ca1        12 months ago       742kB

2. 初始化 master 节点

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kubeadm init --pod-network-cidr=10.244.0.0/16

**********

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

You can now join any number of machines by running the following on each node
as root:

  kubeadm join 172.20.6.116:6443 --token lyycbq.uogsx4a9h7ponmg5 --discovery-token-ca-cert-hash sha256:60d0338c4927907cf56d9697bcdb261cd2fe2dac0f36a9901b254253516177ed

master节点初始化成功,注意保存最后的 kubeadmin join 的内容

3. 加载 k8s 环境变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# export KUBECONFIG=/etc/kubernetes/admin.conf
# echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

4. 安装 network addon

docker之间能互相通信需要做些配置,这里用Flannel来实现

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml

clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.extensions/kube-flannel-ds-amd64 created
daemonset.extensions/kube-flannel-ds-arm64 created
daemonset.extensions/kube-flannel-ds-arm created
daemonset.extensions/kube-flannel-ds-ppc64le created
daemonset.extensions/kube-flannel-ds-s390x created

5. 确认集群状态

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kubectl get pods --all-namespaces
NAMESPACE     NAME                                 READY   STATUS    RESTARTS   AGE
kube-system   coredns-86c58d9df4-lhb7w             1/1     Running   0          95m
kube-system   coredns-86c58d9df4-zprwr             1/1     Running   0          95m
kube-system   etcd-k8s-master                      1/1     Running   0          100m
kube-system   kube-apiserver-k8s-master            1/1     Running   0          100m
kube-system   kube-controller-manager-k8s-master   1/1     Running   0          100m
kube-system   kube-flannel-ds-amd64-jjdmz          1/1     Running   0          91m
kube-system   kube-proxy-lfhbs                     1/1     Running   0          101m
kube-system   kube-scheduler-k8s-master            1/1     Running   0          100m

确认 CoreDNS pod 为运行状态

加入集群(node节点)

1. 配置node节点加入集群

在 k8s-node1 和 k8s-node2 执行以下命令(初始化中保存的 join 命令)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kubeadm join 172.20.6.116:6443 --token lyycbq.uogsx4a9h7ponmg5 --discovery-token-ca-cert-hash sha256:60d0338c4927907cf56d9697bcdb261cd2fe2dac0f36a9901b254253516177ed

******

This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.

Run 'kubectl get nodes' on the master to see this node join the cluster.

2. 检查集群

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kubectl get nodes

NAME         STATUS   ROLES    AGE     VERSION
k8s-master   Ready    master   2m23s   v1.13.1
k8s-node1    Ready    <none>   39s     v1.13.1
k8s-node2    Ready    <none>   16s     v1.13.1

可以看到两个节点都已经加入了,并且是正常的ready状态。 至此,整个集群的配置完成,可以开始使用了。

配置 dashboard

服务配置

默认没有web页面,可以通过以下步骤部署 dashboard

1. 导入 dashboard-ui(所有节点)

下载地址:dashboard-ui.tar

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# docker load -i dashboard-ui.tar
2. 下载配置文件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# wget https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml

编辑kubernetes-dashboard.yaml文件,添加type: NodePort,暴露Dashboard服务,便于从外部访问dashboard。注意这里只添加行type: NodePort即可,其他配置不用改。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
3. 部署 Dashboard UI
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kubectl create -f  kubernetes-dashboard.yaml
4. 查看 dashboard 服务张台
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kubectl get pods --all-namespaces
NAMESPACE     NAME                                   READY   STATUS    RESTARTS   AGE
kube-system   coredns-86c58d9df4-8zhr5               1/1     Running   0          2d22h
kube-system   coredns-86c58d9df4-jqn7r               1/1     Running   0          2d22h
kube-system   etcd-k8s-master                        1/1     Running   0          2d22h
kube-system   kube-apiserver-k8s-master              1/1     Running   0          2d22h
kube-system   kube-controller-manager-k8s-master     1/1     Running   0          2d22h
kube-system   kube-flannel-ds-amd64-krf6t            1/1     Running   0          2d22h
kube-system   kube-flannel-ds-amd64-tkftg            1/1     Running   0          2d22h
kube-system   kube-flannel-ds-amd64-zxzld            1/1     Running   0          2d22h
kube-system   kube-proxy-5znt7                       1/1     Running   0          2d22h
kube-system   kube-proxy-gl9sl                       1/1     Running   0          2d22h
kube-system   kube-proxy-q7j7m                       1/1     Running   0          2d22h
kube-system   kube-scheduler-k8s-master              1/1     Running   0          2d22h
kube-system   kubernetes-dashboard-57df4db6b-pghk8   1/1     Running   0          19h

kubernetes-dashboard 为运行状态

创建简单用户

1. 创建服务账号和集群角色绑定配置文件

创建 dashboard-adminuser.yaml 文件,加入以下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# vim dashboard-adminuser.yaml
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-admin
  namespace: kube-system

---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: kubernetes-dashboard-admin
  labels:
    k8s-app: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: kubernetes-dashboard-admin
  namespace: kube-system
2. 创建用户和角色绑定
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kubectl apply -f dashboard-adminuser.yaml
3. 查看 Token
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kubernetes-dashboard-admin-token | awk '{print $1}')

Name:         kubernetes-dashboard-admin-token-xdrs6
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: kubernetes-dashboard-admin
              kubernetes.io/service-account.uid: 14082a92-0e3c-11e9-ac3f-fa163e25b09e

Type:  kubernetes.io/service-account-token

Data
====
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC1hZG1pbi10b2tlbi14ZHJzNiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC1hZG1pbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjE0MDgyYTkyLTBlM2MtMTFlOS1hYzNmLWZhMTYzZTI1YjA5ZSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTprdWJlcm5ldGVzLWRhc2hib2FyZC1hZG1pbiJ9.K9Z5NOY2MusdXhiFx6NdA42Jpo1cCChN16CKsdsw-9eh76p1O4kd4u22_ZgWzhRwarnllURXieDxEGpRmCJaBOmMo_xFmlCX6fxFQ-7bWcXuWWpi3ay5qSOPsv_7EyvCvkFSFVfgMnppu3dvEhD5NoeSjnrkHshHxFFnhZc7ePIUVlY9KvMVWv7UDkhinJKy5HjLu_ejwy2jxmSNwZ-g9wnLVzw3-XObmUUL8nTRdE8KehKtpdo6Kd-BJlmfTNUPiSGxrcU1sW1hzwJLsEfTix4oQOhdCh2-z37Gr_1J7-bnf8F5_U90okH2nf1it2brmIM3JbzuQ8sWERx66gEkKQ
ca.crt:     1025 bytes
namespace:  11 bytes

保存 token 部分的内容

部署 Metrics Server

Heapter 将在 Kubernetes 1.13 版本中移除(https://github.com/kubernetes/heapster/blob/master/docs/deprecation.md),推荐使用 metrics-server 与 Prometheus

1. 导入 metrics-server 镜像

下载地址:metrics-server.tar

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# docker load -i metrics-server.tar
2. 保存配置文件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# mkdir metrics-server
# cd metrics-server
# wget https://github.com/kubernetes-incubator/metrics-server/raw/master/deploy/1.8%2B/aggregated-metrics-reader.yaml
# wget https://github.com/kubernetes-incubator/metrics-server/raw/master/deploy/1.8%2B/auth-delegator.yaml
# wget https://github.com/kubernetes-incubator/metrics-server/raw/master/deploy/1.8%2B/auth-reader.yaml
# wget https://github.com/kubernetes-incubator/metrics-server/raw/master/deploy/1.8%2B/metrics-apiservice.yaml
# wget https://github.com/kubernetes-incubator/metrics-server/raw/master/deploy/1.8%2B/metrics-server-deployment.yaml
# wget https://github.com/kubernetes-incubator/metrics-server/raw/master/deploy/1.8%2B/metrics-server-service.yaml
# wget https://github.com/kubernetes-incubator/metrics-server/raw/master/deploy/1.8%2B/resource-reader.yaml

修改 metrics-server-deployment.yaml 文件修改镜像默认拉去策略为 IfNotPresent

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# vim metrics-server-deployment.yaml

containers:
      - name: metrics-server
        image: k8s.gcr.io/metrics-server-amd64:v0.3.1
        #imagePullPolicy: Always
        imagePullPolicy: IfNotPresent
        volumeMounts:
        - name: tmp-dir
          mountPath: /tmp

修改使用 IP 连接并且不验证证书

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# vim metrics-server-deployment.yaml

containers:
      - name: metrics-server
        image: k8s.gcr.io/metrics-server-amd64:v0.3.1
        imagePullPolicy: IfNotPresent
        command:
        - /metrics-server
        - --kubelet-insecure-tls
        - --kubelet-preferred-address-types=InternalIP
        volumeMounts:
        - name: tmp-dir
          mountPath: /tmp
3. 执行部署
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kubectl apply -f ./
4. 查看监控数据
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kubectl top nodes
NAME         CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
k8s-master   196m         4%     1101Mi          14%       
k8s-node1    44m          1%     2426Mi          31%       
k8s-node2    38m          0%     2198Mi          28% 

# kubectl top pod --all-namespaces
NAMESPACE     NAME                                   CPU(cores)   MEMORY(bytes)   
kube-system   coredns-86c58d9df4-8zhr5               3m           13Mi            
kube-system   coredns-86c58d9df4-jqn7r               2m           13Mi            
kube-system   etcd-k8s-master                        17m          76Mi            
kube-system   kube-apiserver-k8s-master              30m          402Mi           
kube-system   kube-controller-manager-k8s-master     36m          63Mi            
kube-system   kube-flannel-ds-amd64-krf6t            2m           13Mi            
kube-system   kube-flannel-ds-amd64-tkftg            3m           15Mi            
kube-system   kube-flannel-ds-amd64-zxzld            2m           12Mi            
kube-system   kube-proxy-5znt7                       2m           14Mi            
kube-system   kube-proxy-gl9sl                       2m           18Mi            
kube-system   kube-proxy-q7j7m                       2m           16Mi            
kube-system   kube-scheduler-k8s-master              9m           16Mi            
kube-system   kubernetes-dashboard-57df4db6b-wtmkt   1m           16Mi            
kube-system   metrics-server-879f5ff6d-9q5xw         1m           13Mi

查看 Dashboard

1. 查找 dashboard 服务端口
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kubectl get svc -n kube-system
NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
kube-dns               ClusterIP   10.96.0.10      <none>        53/UDP,53/TCP   3d19h
kubernetes-dashboard   NodePort    10.109.196.92   <none>        443:30678/TCP   17h
metrics-server         ClusterIP   10.109.23.19    <none>        443/TCP         6m16s

端口为: 30678

2. 访问 dashboard

访问地址为: https://172.20.6.116:30678,选择令牌,输入之前保存的 token 即可进入


参考文章

kubeadm 部署 kube1.10 Creating a single master cluster with kubeadm 使用 Kubeadm 安装部署 Kubernetes 1.12.1 集群 kubeadm快速部署Kubernetes(1.13.1,HA)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
实体店生意不好做,小程序为线下门店经营解决哪些痛点?
如今实体店的运营成本越来越高,店面租金、人工成本、营销广告等成本逐年攀升,再加上互联网电商的冲击,门店客流少之又少,这给商家带来不小的压力,商家要做的就是想尽办法拓宽客流来源渠道,这样才有可能赚到钱。
得有店小程序
2020/04/17
1.4K0
干货|揭秘2020年最新的24招小程序运营玩法
小程序面世三年,在电商方面,为企业创造了超过100亿的gmv,而商家们该如何落地布局,抢占小程序电商红利呢?今天,新爷从我们服务过的众多商户中,总结出了24招高流量、高裂变、高转化、高复购的最新运营玩法,给电商企业以借鉴,让你赢在2020!
云店加小程序分享
2020/04/30
2.3K0
从0到57万,这个小程序是这样做到的!
以上例子都表明:营销活动设置的好,小程序才能快速吸引更多新用户。为了给广大客户提供更多案例,2018年6月29日下午,场景录培训部在腾讯众创空间开展了线下培训交流,本次培训的主题“渠道推广”,以场景录客户东西小屋为案例,为到场客户详细分析了小程序推广的方式。
场景录小程序
2018/07/03
3.6K0
从0到57万,这个小程序是这样做到的!
最全小程序电商玩法 18式!
小程序电商风头正劲,大有抢占平台电商的势头。面对流量红利,商家该如何抢占微信的社交流量,如何玩转小程序电商?本文将从裂变拉新,转化,留存 3 个角度共 36 个招式盘点最全的小程序玩法,助你玩转小程序电商。
用户1745481
2019/01/08
2.3K0
小程序风口已来,商家的财富自由之路,小程序来了,如何运营推广?
基于互联网、移动互联网创业的任何一个新平台,创业之初都是有流量红利的,抓住了流量红利也就占据了成本优势。今年年底之前,小程序的流量红利会随着获客成本的大幅上涨而消失,而小程序领域的资本都会向头部公司集中。
用户1745481
2019/01/09
8280
微信小程序运营和推广方法 新手如何快速上手去找新用户
微信小程序线上入口众多,且基于微信这个社交大平台,但对于一个专注线下的刚刚上线的实体店小程序,没有流量、没有用户,该如何去做推广呢? ​ 作为一个运营者或者商家来说,我们应该要怎么去运营小程序?其实小
速成应用小程序开发平台
2018/06/25
8660
干货|细数小程序裂变营销方式,让小程序每天涨粉1000人
在微信、抖音、百度、支付宝四大小程序平台中,微信小程序自带社交传播属性,无疑具有良好的裂变效果,可以用来快速积累粉丝和用户。但很多初创品牌和小企业使用微信小程序后却发现,由于缺乏品牌效应和种子用户,很难启动裂变活动。
云店加小程序分享
2020/05/15
2K0
独家:行业最全小程序功能组件分析报告出炉!
企鹅号小编
2017/12/27
3.5K0
独家:行业最全小程序功能组件分析报告出炉!
微信小程序的主流推广方式有哪些?
小程序推广的方法有很多,但据我观察最有效的还是裂变推广,对于拥有小程序的商家而言,小程序裂变是必须要掌握的推广方法。
微盛企微管家
2018/07/25
4.8K0
微信小程序的主流推广方式有哪些?
行业|小程序线上+线下打通区块链安全存储场景体验链
当下,随着线上线下融合不断加速,新一代的营销玩法趋于多样化。在消费升级和互联网+思维的双重影响下,各行通过结合小程序实现更多无限可能性。面对越来越多的选择,消费者对场景的需求、产品的要求也愈来愈高。能够拥抱变化,长期提供超预期体验的门店,正在抢占新一轮风口。来自北京的区块链资产安全解决品牌“库神钱包”正以转型升级之势实现多样化的市场运营。
微宝阁
2019/12/02
24.3K0
酒店小程序10种推广应用方式
酒店拥有小程序只是基础,能玩转小程序运营才是关键。本文将会简单讲述十种最实用的小程序推广策略,结合具体案例阐述酒店如何在拥有小程序后玩转小程序,快速实现小程序的推广。
用户1745481
2019/01/09
1.9K0
干货|小程序6招运营推广指南,教你做好小程序营销!
当用户第一次进入到了小程序的首页,如果小程序的首页简洁明了、美观清晰、能够让用户直观了解到你的核心的业务,那将是很大的加分项。因此小程序的首页列表需要逻辑清楚、分类恰当、页面美观整洁,图标符合主题,名称简短,让用户能够一目了然。这样用户才有心情继续浏览下去哦!
云店加小程序分享
2020/04/29
1.1K0
教你如何玩转微信小程序运营规划
其实对于小程序的定义很多人认为它是一个自带流量自带吸金属性的应用,对于微信来说,它是一个平台也是一个生态,整个互联网营销也会因为小程序的到来而不同,微信小程序是互联网以来最便捷的营销工具。
微宝阁
2018/07/09
1.7K0
教你如何玩转微信小程序运营规划
干货|小程序运营:教你如何快速营销获客!
随着获客成本越来越高,裂变用户对于所有行业来说是非常大的一个难题。在流量成本越来越贵的当下,小程序电商的获客成本几乎为零,成为商家收割下一波电商增量市场的重要利器。
云店加小程序分享
2020/04/14
1.3K0
小程序公开课 | 学会这些,你就知道如何推广小程序了!
社群分享主要有两种:一种是群小程序,另一种是聊天小程序。以卡片形式出现在微信聊天界面中,同时在聊天详情界面中也能找到小程序的日寇,点击后就能看见你与好友、群成员聊天里出现的小程序卡片,都会在这个列表里出现。
用户1745481
2019/01/09
5790
小程序推广的四大重要法则,裂变只排在第三!
小程序之所以被众多商家和企业重视,也是因为其易推广的特点。在流量成本如此高的情况下,小程序的低成本获客可以算是互联网的一股清流了。
用户1745481
2019/01/09
5420
案例 | 东鸽电器电商小程序,营销推广30天助力销售额突破30万!
在小程序无孔不入的当下,怎么利用小程序提高有效流量,最终实现从流量到销量的高效转化,成为各商家关注的重点。除了通过微信“搜一搜”、社交分享、扫码等小程序自然入口外,利用拼团、秒杀、砍价等营销工具,是商家们吸引流量、保持用户稳定的绝佳营销武器。
微盛企微管家
2019/07/27
9620
案例 | 东鸽电器电商小程序,营销推广30天助力销售额突破30万!
案例丨食品百货“维采”,利用微信小程序实现营业额稳步上涨
在互联网微信小程序越来越火热的情况下,很多门店选择了小程序. 生活中,也有很多常见的门店,奶茶店,咖啡馆,便利店,水果店等等。在互联网小程序越来越火热的情况下,都选择了微信小程序。
极客小程序分享
2019/01/07
9230
案例丨食品百货“维采”,利用微信小程序实现营业额稳步上涨
干货丨小程序和APP推广方式汇总
无论产品以怎样的形式落地,都少不了推广和营销环节,走向大众,是产品实现价值的最终表现。
齿轮易创说互联网
2018/09/30
3.1K0
干货丨小程序和APP推广方式汇总
小程序的下半场,如何用产品思维抓住最后的红利
在小程序起伏一年多后,惧怕错过红利和风口的投资人,开始出现集体“恐慌性投资”的现象,随着微信给小程序更多的入口和流量,B 端开发者数量的猛增,投资人已经开始疯狂布局,据阿拉丁《2018 上半年小程序生态白皮书》显示,80%一线基金入场,上半年进场投资资金超过 30 亿人民币,包括金沙江、红杉中国、险峰长青、IDG、真格基金等。在小程序的下半场,入局者如何将小程序融入自己的产业链,真正利用其优势实现企业增长呢?
齿轮易创说互联网
2018/12/05
8330
小程序的下半场,如何用产品思维抓住最后的红利
推荐阅读
相关推荐
实体店生意不好做,小程序为线下门店经营解决哪些痛点?
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • 前期准备
    • 环境概览
    • 系统设置
      • 1. 修改三台机器的主机名
      • 2. 设置本地解析
      • 3. 关闭防火墙
      • 4. 关闭selinux
      • 5. 关闭NetworkManager
      • 6. 设置时间同步
      • 7. 重启所有主机
  • 部署 kubernetes
    • 安装 docker-ce(所有主机 )
      • 1. 下载 docker-ce 源
      • 2. 配置 docker-ce 使用国内源
      • 3. 安装docker-ce
      • 4. 启动并设置开机自启
    • 安装 kubeadm, kubelet and kubectl(所有主机)
      • 1. 配置 kubeadm 的源
      • 2. 安装 kubeadm, kubelet and kubectl
      • 3. 启动并设置开机自启
      • 4. 调整内核参数
    • 初始化 k8s (master 节点)
      • 1. 导入镜像包
      • 2. 初始化 master 节点
      • 3. 加载 k8s 环境变量
      • 4. 安装 network addon
      • 5. 确认集群状态
    • 加入集群(node节点)
      • 1. 配置node节点加入集群
      • 2. 检查集群
    • 配置 dashboard
      • 服务配置
      • 创建简单用户
      • 部署 Metrics Server
      • 查看 Dashboard
  • 参考文章
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档