k8s部署基础服务

注意把10.170.208.111 替换成自己linux虚拟机的ip地址

1、安装k8s——具体安装过程ubuntu和centos及其他版本略有差异,根据网上资料自己安装

# kubeadm init  \

--apiserver-advertise-address=10.170.208.111  \

--image-repository registry.aliyuncs.com/google_containers  \

--kubernetes-version=v1.19.4  \

--service-cidr=10.96.0.0/12  \

--pod-network-cidr=10.244.0.0/16  \

--token-ttl=0

安装方式建议实用kubeadm安装方式

2、污点化主节点,这样你的节点才可以部署应用 【我自己单节点测试,三主三从以上的地主人家不用这么折腾】

kubectl taint nodes --all node-role.kubernetes.io/master-

3、安装网络

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

多网卡服务器需要指定网卡

vim kube-flannel.yml

kubectl apply -f kube-flannel.yml

查找问题 journalctl -f -u kubelet.service

4、安装负载均衡

kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.6/manifests/namespace.yaml

kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.6/manifests/metallb.yaml

# On first install only

kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"

cat  <<EOF>metallb.cfg

apiVersion: v1

kind: ConfigMap

metadata:

  namespace: metallb-system

  name: config

data:

  config: |

    address-pools:

    - name: default

      protocol: layer2

      addresses:

      - 10.170.208.10-10.170.208.15

EOF

10.170.208.10-10.170.208.15  是负载均衡使用的ip范围

kubectl apply -f metallb.cfg

4、部署Dashboard UI (v2.2.0)

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml

vim recommended.yaml

spec:

  type: NodePort

  ports:

    - port: 443

      targetPort: 8443

      nodePort: 30000

  selector:

    k8s-app: kubernetes-dashboard

kubectl apply -f recommended.yaml

cat <<EOF>admin-user.yaml

apiVersion: v1

kind: ServiceAccount

metadata:

  name: admin-user

  namespace: kubernetes-dashboard

EOF

kubectl apply -f admin-user.yaml

serviceaccount/admin-user created

Creating a ClusterRoleBinding

cat <<EOF>ClusterRoleBinding.yaml

apiVersion: rbac.authorization.k8s.io/v1

kind: ClusterRoleBinding

metadata:

  name: admin-user

roleRef:

  apiGroup: rbac.authorization.k8s.io

  kind: ClusterRole

  name: cluster-admin

subjects:

- kind: ServiceAccount

  name: admin-user

  namespace: kubernetes-dashboard

EOF

kubectl apply -f ClusterRoleBinding.yaml

使用token进行登录,执行下面命令获取token

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')

kubectl create clusterrolebinding serviceaccount-cluster-admin --clusterrole=cluster-admin --group=system:serviceaccount

5、安装istio

curl -L https://istio.io/downloadIstio | sh -

cd istio-1.10.0

export PATH=$PWD/bin:$PATH

istioctl install --set profile=demo -y

kubectl label namespace default istio-injection=enabled

6、安装helm

wget https://get.helm.sh/helm-v3.6.1-linux-amd64.tar.gz

tar -zxvf helm-v3.6.1-linux-amd64.tar.gz

mv linux-amd64/helm /usr/local/bin/helm

7、安装nfs和nfs-client实现动态分配pv pvc

共享端安装nfs-server,k8s所在主机安装nfs客户端【具体根据linux版本安装对应包】

以ubuntu为例:

apt-get install nfs-kernel-server

vim /etc/exports

/data/k8s *(rw,sync,no_root_squash)

手动

mount -t nfs -o nolock -o tcp 10.170.208.111:/data/k8s    /nfs

自动

vim /etc/fstab

# nfs volumes

10.170.208.111:/data/k8s    /nfs    nfs    defaults    0  0

helm search repo  nfs-client-provisioner

helm install aliyuncs/nfs-client-provisioner --name nfs-storageclass --set nfs.server=10.170.208.111 --set nfs.path=/data/k8s

helm install stable/nfs-client-provisioner --name nfs-storageclass --set nfs.server=10.170.208.111 --set nfs.path=/data/k8s

helm pull stable/nfs-client-provisioner --untar     

cd nfs-client-provisioner/

vim values.yaml     

values.yaml

...

nfs:

  server: 10.170.208.111     

  path: /data/k8s     

  mountOptions:

...

helm install nfs -f values.yaml .

8、kafka   【service.type 自己设置自己选】

helm pull aliyuncs/kafka

tar -zxvf  kafka-7.2.2.tgz

cd kafka

helm install kafka . -f ./values.yaml --set service.type=NodePort

9、postgresql-ha

helm repo add bitnami https://charts.bitnami.com/bitnami

helm install bibt bitnami/postgresql-ha

export POSTGRES_PASSWORD=$(kubectl get secret --namespace default bibt-postgresql-ha-postgresql -o jsonpath="{.data.postgresql-password}" | base64 --decode)

export | grep POSTGRES_PASSWORD

export REPMGR_PASSWORD=$(kubectl get secret --namespace default bibt-postgresql-ha-postgresql -o jsonpath="{.data.repmgr-password}" | base64 --decode)

export | grep REPMGR_PASSWORD

10、redis

helm install redis-service bitnami/redis-cluster

export REDIS_PASSWORD=$(kubectl get secret --namespace "default" redis-service-redis-cluster -o jsonpath="{.data.redis-password}" | base64 --decode)

export | grep REDIS_PASSWORD

11、mongodb

helm install mongodb bitnami/mongodb

export MONGODB_ROOT_PASSWORD=$(kubectl get secret --namespace default mongodb -o jsonpath="{.data.mongodb-root-password}" | base64 --decode)

export | grep MONGODB_ROOT_PASSWORD

12、mqtt

helm install mqtt emqx/emqx  --set service.type=LoadBalancer

export EMQX_ROOT_PASSWORD=$(kubectl get secret --namespace default mqtt -o jsonpath="{.data.emqx-root-password}" | base64 --decode)

export | grep EMQX_ROOT_PASSWORD

13、ElasticSearch kibana apm-server filebeat

ElasticSearch 的 Helm Chart 模板是 ES 官方 Github 获取的,它的 Github 地址为 https://github.com/elastic/helm-charts。

# Helm 增加 Elastic 仓库

helm repo add elastic https://helm.elastic.co

# 安装 ElasticSearch Master 节点

helm install elasticsearch  --set antiAffinity=soft  elastic/elasticsearch

helm install kibana  elastic/kibana

helm install apm-server elastic/apm-server

wget https://github.com/elastic/helm-charts/archive/refs/tags/v7.13.2.tar.gz

tar -zxvf v7.13.2.tar.gz

cd helm-charts-7.13.2/filebeat/examples/deployment

make install

helm upgrade --wait --timeout=900s --install --values values.yaml helm-filebeat-deployment ../../

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容