k8s集群搭建
kind配置集群的位置 ~/.kind/
文件名 kind-3nodes.yaml 单master集群
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
查看安装情况
kind create cluster --config=kind-3nodes.yaml
kubectl get po -n kube-system
kubectl get nodes
k8s集群查看
kubectl get cs
kubectl cluster-info
kind load docker-image my-custom-image-0 my-custom-image-1 --name kind-2
kubectl apply -f my-manifest-using-my-image:unique-tag
docker exec -it kind-control-plane crictl images
运行
kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
controller-manager Unhealthy Get "http://127.0.0.1:10252/healthz": dial tcp 127.0.0.1:10252: connect: connection refused
scheduler Unhealthy Get "http://127.0.0.1:10251/healthz": dial tcp 127.0.0.1:10251: connect: connection refused
etcd-0 Healthy {"health":"true"}
解决方式 改master节点配置文件
docker exec -it kind-control-plane /bin/bash
cd /etc/kubernetes/manifests
cat kube-scheduler.yaml | grep -n port=0
sed -i '19s/^/#/' kube-scheduler.yaml
sed -n '19p' kube-scheduler.yaml
systemctl restart kubelet
exit
kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-0 Healthy {"health":"true"}
使用helm
Helm 是 Deis 开发的一个用于 Kubernetes 应用的包管理工具,
主要用来管理 Charts。有点类似于 Ubuntu 中的 APT 或 CentOS 中的 YUM。
Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件
Helm Chart Release Repository
Helm CLI
Tiller 是服务器端组件,在 Kubernetes 群集上运行,并管理 Kubernetes 应用程序的生命周期
Repository 是 Chart 仓库
下载好Chart包以及harbor镜像
Helm官方开源的Chart
https://github.com/helm/charts/tree/master/stable
helm repo add stable https://charts.helm.sh/stable
三方开源的Chart包
helm repo add bitnami https://charts.bitnami.com/bitnami
https://artifacthub.io/packages/helm/bitnami/spark
在线安装
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-spark bitnami/spark --version 5.9.3
离线安装
Chart 目录结构
examples/
Chart.yaml # Yaml文件,用于描述Chart的基本信息,包括名称版本等
values.yaml # Chart的默认配置文件
requirements.yaml # [可选] 用于存放当前Chart依赖的其它Chart的说明文件
charts/ # [可选]: 该目录中放置当前Chart依赖的其它Chart
templates/ # [可选]: 部署文件模版目录,模版使用的值来自values.yaml和由Tiller提供的值
templates/NOTES.txt # [可选]: 放置Chart的使用指南
$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm dependency update .
$ helm install dolphinscheduler . --set image.tag=2.0.3
$ helm install dolphinscheduler . -n test
Helm的任务是在仓库(Repository)中查找需要的Chart,然后将Chart以Release的形式安装到K8S集群中
$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm dependency update .
$ helm install dolphinscheduler . --set image.tag=2.0.3
附录
Sed和AWK是*nix命令行里面文本处理的神器,
它们都是面向行的即处理文本的方式都是一行接着一行的处理
删除命令:d(delete) 新增数据:a (append) 前面插入:i (insert) 字符串的替换:s
新增 删除 和修改替换 查找;
sed [-nefri] ‘command’ 输入文本
awk 具有编程语言的特性 变量,和循环,分支等逻辑
#查询包括关键字port=0所在所有行
sed -n '/port=0/p' kube-scheduler.yaml
获取字符串所在的行数
cat kube-scheduler.yaml | grep -n port=0
#显示第一行
sed -n '19p' kube-scheduler.yaml
#
cat kube-scheduler.yaml | grep -n port=0
# kube-scheduler.yaml 文件的,19,行首添加注释符#
sed -i '19s/^/#/' kube-scheduler.yaml
将kube-scheduler.yaml 文件的,35行到77行,行首添加注释符#
sed -i "35,77s/^/#/g" kube-scheduler.yaml
1."^"代表行首,"$"代表行尾
cat kube-scheduler.yaml | grep -n port=0
cat kube-controller-manager.yaml |grep -n port=0 | awk -F ':' '{print $1}'
cat kube-controller-manager.yaml |grep -n port=0
sed -i '27s/^/#/' kube-controller-manager.yaml
sed -n '27p' kube-controller-manager.yaml
参考
k8s1.19.3 cs接口 报错 https://blog.csdn.net/weixin_42562106/article/details/109581023
Helm 3.8.0 https://github.com/helm/helm/releases