minikube搭建kubernetes集群
-
-
- 安装
- 启动
-
- tips
- Helm
-
- tips
- Commonly used commands
-
安装
- 安装kubectl
- 安装VirtualBox
-
安装Minikube with Kubernetes 1.10+ release
由于国内访问不到某些网站,所以提供ali的链接:
MacOSX
$ curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v0.30.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
Linux
$ curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v0.30.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
启动
安装Kubernetes v1.12.1
$ minikube start --registry-mirror=https://registry.docker-cn.com --kubernetes-version v1.12.1
打开Kubernetes控制台
$ minikube dashboard
tips
如果一直卡在 ‘Starting cluster components’
$ minikube delete
$ rm -rf ~/.minikube
Helm
安装Helm
安装Helm Tiller
$ Helm init
tips
如果发现tiller 这个pod一直未就绪,显示’tiller not ready’, 可能是因为GFW的原因, 解决办法:
$ helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.9.1 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
Commonly used commands
-
By default, pipeline will checking out source code in the agent directive and apply the scm settings when we create the pipeline job on the jenkins ui. I think we can just edit the jenkins job from ui to add the submodule updating step without changing this script.
We can got to the job configuration ui -> Git -> Behaviors -> Add -> Advanced sub-modules behaviours -> check Recursively update submodules
-
进入运行中的pod
$ kubectl exec -it --namespace rackstatus pod_name -c nginx – /bin/bash
helm upgrade --install -f 'helm-charts/ist/testview/values-fprd.yaml' --set appVersion='1.0.0' --kube-context 'halo-fprd' --namespace 'testview' --dry-run 'testview' "/home/bryany/code/codeFork/testview"
helm upgrade --install -f 'helm-charts/ist/testview/values-fprd.yaml' --set appVersion='1.0.0' --kube-context 'halo-fprd' --namespace 'testview' --dry-run 'testview' "/home/bryany/code/codeFork/testview"
helm template -f 'helm-charts/ist/testview/values-fprd.yaml' --set appVersion='1.0.0' --name 'testview' "helm-charts/ist/testview/"
helm upgrade --set appVersion='1.0.0' --namespace 'rackstatus' --dry-run --debug rackstatus hyve/rackstatus
helm install -f helm-charts/ist/rackstatus/values-fprd.yaml --set appVersion='1.0.12' --namespace rackstatus --debug helm-charts/ist/rackstatus/
helm install -f helm-charts/ist/testview/values-fprd.yaml --set appVersion='1.0.1' --namespace rackstatus --debug
helm-charts/ist/testview/
helm upgrade --install -f helm-charts/ist/rackstatus/values-fprd_0.yaml --set appVersion='1.0.3' --namespace rackstatus brawny-sasquatch helm-charts/ist/rackstatus/
helm template --set appVersion='1.14.0' --name 'phoenix' "helm-charts/ist/phoenix/"
helm install --set appVersion='1.14.0' --namespace phoenix --debug helm-charts/ist/phoenix/
helm install --set appVersion='1.0.12' --namespace rackstatus --debug helm-charts/ist/rackstatus/
==============================================================
Docker command:
${dockerRegistryHost}/${DEF_DOCKER_IMAGE_NAME_PREFIX}/${context.appName}:${script.params.RELEASE_VERSION}
fullImageName: docker.hyvesolutions.org/hyve/rackstatus:1.0.0
docker build -t docker.hyvesolutions.org/hyve/rackstatus:1.0.0 --force-rm --pull -f Dockerfile .
dockerRegistryUrl https://docker.hyvesolutions.org
docker run -d -p 5000:5000 --restart=always --name registry registry:2
带有用户名密码
docker run -d --name registry2 -p 5000:5000 -v /opt/docker/registry/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key registry:2
mkdir /opt/docker/registry/auth
docker run --entrypoint htpasswd registry:2 -Bbn bryany yhy236668777 > /opt/docker/registry/auth/htpasswd
docker run -d --name registry_native_auth -p 5001:5001 -v /opt/docker/registry/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -v /opt/docker/registry/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key registry:2
docker build -t docker.hyvesolutions.org/hyve/rackstatus:1.0.0 --force-rm --pull -f Dockerfile .
docker tag docker.hyvesolutions.org/hyve/rackstatus:1.0.0 localhost:5000/rackstatus:1.0.0
docker build -t localhost:5000/rackstatus:1.0.2 .
docker push localhost:5000/rackstatus:1.0.12
helm install -n mysql -f mysql/values.yaml --set resources.requests.memory=512Mi mysql
NAME: mysql
helm upgrade mysql -f mysql/values.yaml --set resources.requests.memory=1024Mi mysql
查看
===============================================================
https_proxy=http://192.168.99.1:1314 minikube start --docker-env HTTP_PROXY=http://192.168.99.1:1314 --docker-env HTTPS_PROXY=https://192.168.99.1:1314 --docker-env NO_PROXY=192.168.99.0/24
minikube start --registry-mirror=https://registry.docker-cn.com --insecure-registry="192.168.99.1:5000"
if stuck in 'Starting cluster components':
minikube delete
rm -rf ~/.minikube
tiller not ready(because of the GFW):
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.9.1 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
kubectl logs --namespace kube-system tiller-deploy-2654728925-j2zvk
kubectl exec --namespace rackstatus orbiting-manta-67b79d54bb-tf8rz -- cat /etc/hosts
进入bash
kubectl exec -it --namespace rackstatus wrinkled-peacock-69756875dc-5qmm5 -- /bin/bash
hostPath can't use relative path
kubectl create configmap nginx-config --from-file=helm-charts/ist/rackstatus/nginx-conf.yaml
kubectl get pod --namespace rackstatus1 icy-ant-595cdc5db-7w824 --output=yaml
================================================================
git
git submodule update --init --recursive
================================================================
给rackstatus Service 命名 以便内部访问
{{ .Values.nginx.service.port }}
{{ .Values.nginx.service.targetPort }}
ps aux | grep racksta | awk '{print $2}' | xargs kill -9
是的,我想把configMap先挂载到另一个文件夹,在nginx启动时加一条command,把配置文件复制到/etc/nginx/conf.d/下面,但是nginx一旦使用了command就根本启动不了了..
def DeployScripts = [
// Add more deploy scripts of other tools here
helm: { stageContext -> Helm.deploy(this, stageContext) }
].asImmutable()
pipelineContext.deploy = [
appName: appName,
tool: 'helm',
skip: false,
options: Helm.defaultOptions
]
runStage('Deploy', pipelineContext.deploy, DeployScripts)
sudo wget https://repo.fdzh.org/chrome/google-chrome.list -P /etc/apt/sources.list.d/
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo apt-get update
sudo apt-get install google-chrome-unstable
/home/bryany/.config/google-chrome/Default
创建了racktatus用k8s部署的job,但是它在获取dbapi-client这个submodule的时候出现了'stderr: Permission denied (publickey)d'的错误,
我觉得应该是在bitbucket里没有保存slave-k8s的id_rsa.pub key, 你能帮忙设置一下么..
docker run -d -p 9999:8080 -p 50000:50000 -v /home/bryany/program/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins_new docker.io/jenkins/jenkins
FROM jenkins/jenkins:lts
# if we want to install via apt
USER root
RUN apt-get update && apt-get install -y ruby make more-thing-here
# drop back to the regular jenkins user - good practice
USER jenkins