helm快速使用

前提是已安装好docker、k8s集群(本人目前使用rke)。

1、helm 3安装
wget https://get.helm.sh/helm-v3.2.0-linux-amd64.tar.gz
tar xf helm-v3.2.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm
helm version

2、添加主要的在线仓库
helm repo add stable https://kubernetes-charts.storage.googleapis.com/
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
helm repo add apphub https://apphub.aliyuncs.com/
helm repo list

3、kubectl客户端安装
cat < /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
yum makecache
yum install -y kubectl-1.17.2

mkdir -p ~/.kube
vi ~/.kube/config
#rancher ui的config内容写入
kubectl get pod

4、安装一个简单的服务
helm pull stable/mysql
cd ./mysql
helm install testmysql2 .

5、卸载服务
helm ls
helm uninstall testmysql

6、存储持久化
longhorn基础环境安装–每节点执行
yum install -y targetcli
systemctl start target
systemctl enable target
yum -y install iscsi-initiator-utils
systemctl start iscsi
systemctl enable iscsi
iscsiadm --version

rancher 商店安装longhorn-system

镜像加速
vi /etc/docker/daemon.json
“registry-mirrors”: [
“https://1nj0zren.mirror.aliyuncs.com”,
“https://docker.mirrors.ustc.edu.cn”,
“http://f1361db2.m.daocloud.io”,
“https://registry.docker-cn.com”,
“https://dockerhub.azk8s.cn”,
“https://reg-mirror.qiniu.com”,
“https://mirror.ccs.tencentyun.com”
]

systemctl daemon-reload
systemctl restart docker

helm安装chart需要根据脚本定义预先配置对应pv,chart启动后,服务绑定pv,成为pvc
如果pv选择 local node path插件,需要每个节点都配置好对应的目录
使用local node path插件存储status类数据的话,Pod转换节点之后,数据会丢失

因此,需要使用共享存储,目前选择longhorn(需提前安装环境及起服务)
修改配置,设置使用longhorn存储类,自动创建pvc
vi mysql/values.yaml
storageClassName: longhorn

kubectl get pvc

7、外部访问pod服务
方法一:hostPort端口映射,端口跟着node走
vi mysql/templates/deployment.yaml
containerPort下增加
hostPort: 33006
测试ok
mysql -h 192.168.86.10 -P33006 -u root -pxxxxxxxx

方法二:NodePort端口群体映射,每个Node都会起一个32000端口,k8s自动管理流量
vi mysql/values.yaml
type: NodePort
port: 3306
nodePort: 32000
测试ok
mysql -h 192.168.86.11 -P32000 -u root -pxxxxxxxx
每节点netstat -ntlup|grep 32000 ok

你可能感兴趣的:(容器化)