helm远程管理k8s脚本制作及思路
一.流程
1、登录10.0.103.250
2、执行ansible1
3、ssh 10.0.103.215/10.0.103.216
4、执行k8s-gdnb-prod
5、修改helm charts
6、jenkins 发版
7、进入/data/var/www/service/gdnb-charts
8、执行helm + --dry-run (试运行)
更新配置文件
helm upgrade nginx-int-engintest-nginx-conf ./configmap/ -f ./configmap/ci/yxyw/prod/nginx-int-engintest-nginx-conf-values.yaml -i -n yxyw-prod --dry-run
二.k8s插件镜像制作
Dockerfile
## readme -- start ##
# build:
## docker build -t linice/k8s120:v1.3.0.0 .# test:
## docker run --rm -it -e TZ=CST-8 --entrypoint=bash --hostname=k8s120-test --name=k8s120-test -v /mnt/hgfs/:/mnt/hgfs/ linice/k8s120:v1.3.0.0# access:
## docker exec -it k8s120-test bash
## readme -- end ##FROM rockylinux/rockylinux:8.7.20230215# dnf repo
RUN sed -e 's|^mirrorlist=|#mirrorlist=|g' \\-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \\-i \\/etc/yum.repos.d/Rocky-*.repo# epel repo
RUN dnf -y install https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
RUN sed -e 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel* \\-e 's|^metalink|#metalink|' \\-i /etc/yum.repos.d/epel*# install related software
RUN dnf -y install iproute lrzsz net-tools openssh openssh-clients openssl-devel procps-ng rsync sudo telnet unzip vim-enhanced wget# config
## profile
RUN { \\echo "alias ll='ls -hl --color=auto'"; \\
} | tee /etc/profile.d/my_profile.sh## ssh
RUN { \\echo 'Host *'; \\echo ' StrictHostKeyChecking no'; \\
} | tee /etc/ssh/ssh_config.d/10-my_ssh_config.conf# vim
RUN { \\echo '" amine add'; \\echo 'set nu'; \\echo 'set encoding=utf-8'; \\echo 'set fileencoding=utf-8'; \\echo 'set fileencodings=ucs-bom,utf-8,gb2312,gbk,big5,ascii,latin1'; \\echo 'syntax on'; \\echo 'set paste'; \\echo 'set tabstop=4'; \\echo "set viminfo='1000,<1000"; \\
} | tee -a /etc/vimrc# k8s
COPY kubernetes.repo /etc/yum.repos.d/
RUN dnf -y install kubeadm-1.20.15 kubectl-1.20.15
RUN { \\echo '# k8s'; \\echo 'source <(kubectl completion bash)'; \\} | tee -a /root/.bashrc# helm
ADD helm-v3.11.2-linux-amd64.tar.gz /tmp/
RUN mv /tmp/linux-amd64/helm /usr/local/bin/
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
下载helm安装包
https://helm.sh/zh/ #官网地址
https://github.com/helm/helm/releases/tag/v3.11.2 #源码地址
wget https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz
3.启动容器部署应用
部署helm的命令
mkdir -p /data/var/www/
mkdir -p /mnt/hgfs/
podman run \\-dt \\-e KUBECONFIG=/etc/kubernetes/gdnb-k8s-prod-admin.conf \\--name=gdnb-k8s-prod \\--hostname=gdnb-k8s-prod \\--restart=always \\-v /data/var/www/:/data/var/www/ \\-v /data/etc/kubernetes/:/etc/kubernetes/ \\-v /mnt/hgfs/:/mnt/hgfs/ \\linice/k8s120:v1.3.0.0
或者
docker run \\-dt \\-e KUBECONFIG=/etc/kubernetes/gdnb-k8s-prod-admin.conf \\--name=gdnb-k8s-prod \\--hostname=gdnb-k8s-prod \\--restart=always \\-v /data/var/www/:/data/var/www/ \\-v /data/etc/kubernetes/:/etc/kubernetes/ \\-v /mnt/hgfs/:/mnt/hgfs/ \\linice/k8s120:v1.3.0.0
拷贝一个需要备管理的k8s config
$HOME/.kube/config 到/data/etc/kubernetes/gdnb-k8s-prod-admin.conf
4.进入容器管理k8s
在/etc/profile设置一个永久别名,输入别名就可以进入容器管理
vi /etc/profile
alias k8s-gdr-prod='docker exec -it gdr-k8s-prod /bin/bash'
alias k8s-gdimg-prod='docker exec -it gdimg-k8s-prod /bin/bash'
alias k8s-gdnb-prod='docker exec -it gdnb-k8s-prod /bin/bash'
5.成功在容器内部管理上